gpt4 book ai didi

ruby-on-rails - 定期延迟工作

转载 作者:数据小太阳 更新时间:2023-10-29 06:59:51 27 4
gpt4 key购买 nike

我正在使用 Delayed Job 来管理后台工作。
但是我有一些任务需要定期执行。例如每小时、每天或每周。

现在,当我执行任务时,我会创建一个新任务,在一天/一周/一个月内执行。

不过我不是很喜欢。如果由于任何原因,任务没有完全执行,我们不会创建下一个任务,我们可能会失去任务的执行。

您如何在 Rails 应用程序中管理此类事情(延迟作业)以确保您的常规任务列表保持正确?

最佳答案

如果你可以访问 Cron,我强烈推荐 Whenever

http://github.com/javan/whenever

您指定要运行什么以及在简单的 ruby​​ 中以什么频率运行,以及何时提供 rake 任务以将其转换为 crontab 并更新系统的 crontab。

如果您无法访问频繁的 cron(就像我一样,因为我们在 Heroku 上),那么 DJ 是您的不二之选。

您有几个选择。

  1. 做你正在做的事。 DJ 会重试每个任务一定次数,所以你可以宽大一些

  2. 将创建下一个 DJ 作业的代码放在 ensure block 中,以确保即使在发生异常或其他不良事件后也能创建它

  3. 创建另一个定期运行的 DJ,检查以确保存在合适的 DJ,如果不存在则创建它们。当然,这与其他选项一样容易出错,因为监视器和实际 DJ 都在同一个环境中运行,但它确实存在。

关于ruby-on-rails - 定期延迟工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1636509/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com