如果我使用Heroku调度程序,我还需要延迟工作吗?

时间:2016-09-05 02:39:55

标签: ruby-on-rails heroku delayed-job

我对此有点困惑。我有几个我想异步运行的任务,例如我的库存同步集成。为此我实施了延迟工作,但我意识到我需要运行rake工作:为Heroku工作。我可以使用Heroku调度程序每10分钟运行一次这个rake任务。我的问题是;如果我创建rake任务来运行,即我的库存同步方法,我还需要延迟工作吗?我的理解是,heroku调度程序启动了一个dynos'。

不是使用延迟作业,我是否可以直接启动同步方法,因为无论如何使用单独的dyno?延迟工作的附加价值是什么?

1 个答案:

答案 0 :(得分:1)

Heroku的Scheduler取代了cron在典型服务器上处理的内容。延迟作业或Sidekiq用于从您的应用程序异步处理作业,而不是定时计划。

你使用工人的原因&在后端运行这些作业是为了让您的服务器尽快返回响应,而不是让用户等待一些可能不必要的长时间运行过程来完成(大量查询,出站电子邮件,外部API请求)等等。)。

例如,调度程序可以每小时或每天从脚本运行分析或更新,但延迟的作业不能。