【问题标题】:How is supposed to work rufus-scheduler on rails?rufus-scheduler 应该如何在 Rails 上工作?
【发布时间】:2014-07-02 16:57:26
【问题描述】:

我正在尝试使用 rufus-scheduler gem on rails 来设置一些任务(每小时发送一封邮件)。我安装了 gem 并创建了一个 config/initializer/task_scheduler.rb

require 'rubygems'
require 'rufus/scheduler'  
scheduler = Rufus::Scheduler.start_new
scheduler.every("1h") do
    Rule.all.each do |r|
        RuleMailer.report_email(r).deliver
    end
end

但我不明白下一步是什么。这将如何运行?我应该设置一个cron吗?这是由网络服务器运行的? rails s,或者 rake task,什么的。

我不明白,也找不到相关信息。

【问题讨论】:

    标签: ruby-on-rails ruby cron


    【解决方案1】:

    这将使用every 运行。

    Rufus-scheduler 支持五种工作。在,在,每一个,间隔 和 cron 作业。

    https://github.com/jmettraux/rufus-scheduler 上,它以各种块显示了各种用途的示例。如果你想使用 cron,它看起来更像是 scheduler.cron '00 09 * * *' do(直接来自示例,没有设置为你的时间间隔)。

    【讨论】:

    • 我不明白,我的意思是,我已经完成了“每个”块,但是什么会使该代码执行?我应该运行一个 ruby​​ 脚本安装什么东西还是什么?我的意思是,是一个 .rb 文件,它必须被执行才能运行,如果不执行,我有什么代码都没关系,它永远不会运行。
    • 它应该像在初始化程序中一样工作......不是吗?
    • 是的,我在初始化程序上有它,所以这是由网络服务器执行的?
    • 我已经等了 2 个小时,我的任务没有被调用。我真的无法理解如果没有其他进程运行一段代码,它怎么可能被执行。
    • 对于故障排除,我要做的是将间隔设置为更短的持续时间。此外,在块之前和之后将一些信息写入日志,以查看什么时候运行。或者,您可能希望探索完成相同任务的许多其他 gem 之一 - 在工作中我们使用 foreman 和 bluepill,但您可以在 ruby-toolbox.com 找到更多信息。
    猜你喜欢
    • 1970-01-01
    • 2016-06-14
    • 1970-01-01
    • 2013-12-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多