Rails 中的延迟作业与 Cron

Delayed Job vs. Cron in Rails

我的应用程序(在 Rails 中)应该提供两个主要任务:

我正在考虑使用 DelayedJob gem 或 Whenever gem 来执行 cron 任务。在这些情况下哪个更好?

感谢任何建议。

为了创建 activity,我肯定会使用后台作业来完成(即 PostToTwitterJob)。我更喜欢 Sidekiq 而不是 DelayedJob,因为 delayed_job 似乎不再活跃了。如果您希望在将来的特定时间执行该作业,请查看 sidekiq's documentation

至于抓取,我会两者都用。您的爬虫将是一项后台作业(即 TweetsCrawlerJob),您可以使用 whenever.

每小时启动一次

create activity (for example post to Twitter) in given time in the future

如果这是对 event/user 操作的响应,那么后台任务将是理想的选择,因为它不是常规计划。 Ruby toolbox 似乎更喜欢 Resque 和 Sidekiq 而不是延迟的工作,所以在解决之前先看看那些。

periodically crawler some site or download Tweets

与上述相反,如果这是定期安排的活动,那么 cron 作业是理想的选择。为此使用 whenever 没有错,但请确保您对作业进行某种形式的监控,以便在出现问题时提醒您。