Ruby on rails 定期延误的工作

Ruby on rails 定期延误的工作,ruby-on-rails,ruby,cron,delayed-job,Ruby On Rails,Ruby,Cron,Delayed Job,我正在使用延迟作业来管理背景工作。 但是,我有一些任务需要定期执行。例如,每小时、每天或每周 现在,当我执行任务时,我会创建一个新任务,在一天/一周/一个月内执行 然而我并不真的喜欢它。如果由于任何原因,任务没有完全执行,我们不会创建下一个任务,我们可能会失去任务的执行 您如何在rails应用程序中管理这类事情(延迟作业),以确保您的常规任务列表保持正确?您有什么特别的原因不使用cron处理这类事情吗? 或者是更像红宝石的东西,非常可靠 如果您不需要排队,我认为这些工具是一个不错的选择。如果您可

我正在使用延迟作业来管理背景工作。
但是,我有一些任务需要定期执行。例如,每小时、每天或每周

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

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


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

您有什么特别的原因不使用cron处理这类事情吗? 或者是更像红宝石的东西,非常可靠


如果您不需要排队,我认为这些工具是一个不错的选择。

如果您可以访问Cron,我强烈建议您随时使用

您可以在dead simple ruby中指定要运行的内容和频率,并随时提供rake任务将其转换为crontab并更新系统的crontab

如果您不能访问频繁的cron(就像我一样,因为我们在Heroku上),那么DJ就是一条出路

你有几个选择

  • 做你正在做的事。DJ会对每个任务重试一定次数,所以您可以在那里宽大处理

  • 将创建下一个DJ作业的代码放入“确保”块中,以确保即使在发生异常或其他错误事件后也能创建该作业

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


  • 我已经有了延迟的工作,迪蒙。我希望避免启动第二个守护进程。您不需要使用rufus调度程序启动任何新的守护进程。它使用简单的循环或事件机器来检查要运行的作业。cron是一个守护进程,但不管怎样,您通常都需要它启动并运行。无论何时,这都是一件好事。有一些任务允许我在更改某些内容时重新加载crontab(我需要动态更改任务)。谢谢:)