delayed_job在http://github.com/collectiveidea/delayed_job对于cron任务,Rails是否是“delayed_job”?
可以delayed_job有能力做cron任务吗?比如每天凌晨1点运行脚本。或者每1小时运行一次脚本。
如果不是,有什么适合的宝石可以做到这一点?并且可以使用浏览器进行远程监控,并记录成功和错误?
delayed_job在http://github.com/collectiveidea/delayed_job对于cron任务,Rails是否是“delayed_job”?
可以delayed_job有能力做cron任务吗?比如每天凌晨1点运行脚本。或者每1小时运行一次脚本。
如果不是,有什么适合的宝石可以做到这一点?并且可以使用浏览器进行远程监控,并记录成功和错误?
我参与了一个尝试使用DelayedJob来安排未来项目的项目。它吸了。
相反,我建议你使用每当宝石:
http://github.com/javan/whenever
当是一个Ruby的宝石,提供了定义cron作业一 清晰的语法。 它输出有效的cron语法,并且可以为您编写您的crontab文件。 它被设计成可以和Rails 应用程序一起使用,并且可以与 Capistrano一起部署。每当独立工作时也可以很好地工作 。
代码如下所示(从GitHub)
every 3.hours do
runner "MyModel.some_process"
rake "my:rake:task"
command "/usr/bin/my_great_command"
end
every 1.day, :at => '4:30 am' do
runner "MyModel.task_to_run_at_four_thirty_in_the_morning"
end
every :hour do # Many shortcuts available: :hour, :day, :month, :year, :reboot
runner "SomeModel.ladeeda"
end
every :sunday, :at => '12pm' do # Use any day of the week or :weekend, :weekday
runner "Task.do_something_great"
end
Here的关于如何使用它RailsCast视频。
和相应的ASCIICast。
每当工作很好。
我也很喜欢rufus-scheduler
/config/initializers/task_scheduler.rb
然后在该文件中:
scheduler = Rufus::Scheduler.start_new
scheduler.every("1m") do
DailyDigest.send_digest!
end
我最初发现这个贴here
我已经尝试过了,效果很好。
现在我回头看这个链接它几乎是唯一轨道公司,我想为之工作。他们制作了许多宝石,并为社区增加了很多。更何况他们有一个庞大的团队!
我运行多个cron delayed_jobs进行夜间统计和报告生成,并在特定时间间隔内进行数据报废。下面是我如何做到这一点:
https://aaronvb.com/articles/recurring-delayed-job-with-cron.html
您也可以使用发条宝石: https://github.com/adamwiggins/clockwork-rails-dj
发条可以作为独立的后台程序,可以用来触发任何类型的,要么被添加到该职位一个工作排队系统或马上运行。
使用Delayed_Job可以分配多个节点(或不是)的作业排队系统。 使用其他方法在适当的时间将作业添加到队列中。
我正在使用rake(或runner)/ cron /每当宝石安排后台任务,但发现我的服务器负载非常高,因为我会不断用rake/runner加载rails环境。 Delayed_Job工作人员是您的rails守护进程保持运行,所以每次需要后台任务时都不会不断启动Rails。
我创建了这个宝石:
https://github.com/sellect/delayed_cron
它与sidekiq和delayed_job的目前。希望尽快添加resque。我知道这有点晚,但它确实和你要找的东西差不多。
自2014-03-06起,delayed_cron gem与delayed_job无法正常工作。即使在修复DelayedCron :: Jobs :: DelayedJob#之后,执行gem仍然无法正常工作:具有间隔的cron作业不会重新计划(无论作业是否成功完成)。 – cydparser 2015-04-03 01:39:11
@cydparser我个人不会使用delayed_job作为delayed_cron的后台处理器,我更喜欢sidekiq。但是,版本0.2.2和0.2.3中的delayed_cron类中的DelayedJob类已更新。你使用的是哪个版本的宝石?无论哪种方式,我计划更新delayed_cron以使用Rail的ActiveJob来抽象作业适配器,以便与将来的不同背景处理器兼容不应成为问题。 – jGRUBBS 2015-04-10 08:34:58
为什么/ delayed_job是如何吸引你的? – sscirrus 2011-10-09 23:06:22
我发现DJ工作人员不断冻结,他们很难继续跑步。 我已经切换到Sidekiq并从未回头。这是完美的。绝对出色的作品。我希望我的公司能够为Sidekiq Pro的附加功能付出代价,仅仅因为它太棒了。 – cpuguy83 2013-01-07 15:29:03
它确实很烂。我也去过那里。 – OneChillDude 2014-10-01 20:42:12