我的应用程序(基于Rails)应该提供两个主要任务:
- 在未来的某个时间创建活动(例如发布到Twitter)
- 定期爬取某些网站或下载Tweets
我正在考虑使用DelayedJob gem或Whenever gem来处理计划任务。在这些情况下,哪一个更好?
感谢任何建议。
我的应用程序(基于Rails)应该提供两个主要任务:
我正在考虑使用DelayedJob gem或Whenever gem来处理计划任务。在这些情况下,哪一个更好?
感谢任何建议。
在未来的某个时间创建活动(例如发布推文)
如果这是对事件/用户操作的响应,则后台任务是理想选择,因为它不是定期安排。Ruby toolbox似乎更喜欢Resque和Sidekiq而不是delayed job,所以在决定之前请查看它们。
定期爬取某些网站或下载推文
与上述相反,如果这是定期安排的事件,则cron作业是理想选择。使用whenever
没有问题,但请确保对作业进行某种形式的监控,以便在出现问题时通知您。
PostToTwitterJob
)。我更喜欢使用Sidekiq
而不是DelayedJob
,因为delayed_job似乎已经不再更新了。如果你想要在将来的某个特定时间执行该作业,请查看sidekiq的文档。TweetsCrawlerJob
),并且您可以使用whenever
每小时启动一次。DelayedJob
目前仍在此处积极维护: https://github.com/collectiveidea/delayed_job。截至 Rails 5.2.1 版本,它仍被列为 Active Job 适配器之一: https://api.rubyonrails.org/classes/ActiveJob/QueueAdapters.html。 - chemturion