我对此有点困惑。我有几个我想异步运行的任务,例如我的库存同步集成。为此我实施了延迟工作,但我意识到我需要运行rake工作:为Heroku工作。我可以使用Heroku调度程序每10分钟运行一次这个rake任务。我的问题是;如果我创建rake任务来运行,即我的库存同步方法,我还需要延迟工作吗?我的理解是,heroku调度程序启动了一个dynos'。
不是使用延迟作业,我是否可以直接启动同步方法,因为无论如何使用单独的dyno?延迟工作的附加价值是什么?
答案 0 :(得分:1)
Heroku的Scheduler取代了cron在典型服务器上处理的内容。延迟作业或Sidekiq用于从您的应用程序异步处理作业,而不是定时计划。
你使用工人的原因&在后端运行这些作业是为了让您的服务器尽快返回响应,而不是让用户等待一些可能不必要的长时间运行过程来完成(大量查询,出站电子邮件,外部API请求)等等。)。
例如,调度程序可以每小时或每天从脚本运行分析或更新,但延迟的作业不能。