如何在 Rails ActiveJob 中创建日常工作(类似 cron)?
How to create a daily job (cron-like) in Rails ActiveJob?
我知道这个话题:A cron job for rails: best practices?,但没有提到 ActiveJob。我使用 ActiveJob 的动机是因为它内置于 Rails 中,这是其文档的摘录:
"These jobs can be everything from regularly scheduled clean-ups, to billing charges, to mailings."
如何在 Rails ActiveJob 中创建日常工作(类似 cron)?因为我没有在 its docs.
中看到 运行 定期安排的作业的示例
还是我应该坚持 whenever
gem?
坚持 whenever
gem or similar gem e.g. chrono
, clockwork
, rufus-scheduler
。
您在 ActiveJob 文档中阅读的内容有点令人困惑,因为 ActiveJob 似乎可以处理定期调度的责任。文档应该说恕我直言,这些作业是由其他系统或工具定期安排的。
So, ActiveJob is about queued jobs?
是的,它是关于 Rails 提供用于将作业添加到队列并调用执行方法的标准接口。 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
我知道这不是一个好习惯
如果您正在使用 sidekiq
适配器进行活动作业。 sidekiq-cron
内置了对 activejob 的支持。所以你可以直接使用它。 https://github.com/ondrejbartas/sidekiq-cron
我知道这个话题:A cron job for rails: best practices?,但没有提到 ActiveJob。我使用 ActiveJob 的动机是因为它内置于 Rails 中,这是其文档的摘录:
"These jobs can be everything from regularly scheduled clean-ups, to billing charges, to mailings."
如何在 Rails ActiveJob 中创建日常工作(类似 cron)?因为我没有在 its docs.
中看到 运行 定期安排的作业的示例还是我应该坚持 whenever
gem?
坚持 whenever
gem or similar gem e.g. chrono
, clockwork
, rufus-scheduler
。
您在 ActiveJob 文档中阅读的内容有点令人困惑,因为 ActiveJob 似乎可以处理定期调度的责任。文档应该说恕我直言,这些作业是由其他系统或工具定期安排的。
So, ActiveJob is about queued jobs?
是的,它是关于 Rails 提供用于将作业添加到队列并调用执行方法的标准接口。 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
我知道这不是一个好习惯
如果您正在使用 sidekiq
适配器进行活动作业。 sidekiq-cron
内置了对 activejob 的支持。所以你可以直接使用它。 https://github.com/ondrejbartas/sidekiq-cron