![](/img/trans.png)
[英]How to automatically stop a cron-like service(whenever / clockwork) with Rails server shutdown?
[英]How to create a daily job (cron-like) in Rails ActiveJob?
我知道这个帖子: rails的cron工作:最佳实践? ,但没有提到ActiveJob。 我使用ActiveJob做的动机是因为它内置在Rails中,这里是它的文档的摘录:
“这些工作可以是定期清理,计费和邮寄等所有工作。”
如何在Rails ActiveJob中创建日常工作(类似cron)? 由于我没有看到在其文档中运行定期计划作业的示例。
或者我应该坚持whenever
宝石?
坚持whenever
宝石或类似的宝石,例如chrono
, clockwork
, rufus-scheduler
。
您在ActiveJob文档中阅读的内容有点令人困惑,因为看起来好像ActiveJob可以处理定期调度的责任。 文档应该说恕我直言,工作是由其他一些系统或工具定期安排的。
那么,ActiveJob是关于排队的工作?
是的,它是关于Rails提供标准接口,用于将作业添加到队列,并调用perform方法。 ActiveJob提供了方法接口,可以为许多作业处理队列,后端,直接运行程序等启用适配器。
它对我有用:
every 1.day, at: '9:36 am' do
runner 'SomeJob.perform_later'
end
我使用的whenever
和ActiveJob
如果你不想添加一个cron作业,可以在作业结束时调用第一次执行后1天重复相同的工作
class SomeJob < ApplicationJob
def perform(*args)
#execution here...
SomeJob.set(wait_until: Time.now + 1.day).perform_later(...)
end
end
我知道这不是一个好的实践
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.