我正在开发一个从 X 远程 API 获取数据的应用程序。目前,我每 2 分钟运行一次 cron 作业,为每个 API 执行一个 rake 任务,但我觉得即使这是一个简单的解决方案,它对我来说也不是最好的解决方案。
如果 rake 任务在下一个任务执行之前还没有完成会发生什么?我现在如何正确运行任务?像这样的问题是我想从 cron 切换的原因。
你们有什么想法或最佳实践吗?
我正在开发一个从 X 远程 API 获取数据的应用程序。目前,我每 2 分钟运行一次 cron 作业,为每个 API 执行一个 rake 任务,但我觉得即使这是一个简单的解决方案,它对我来说也不是最好的解决方案。
如果 rake 任务在下一个任务执行之前还没有完成会发生什么?我现在如何正确运行任务?像这样的问题是我想从 cron 切换的原因。
你们有什么想法或最佳实践吗?
在您的 cron 作业中添加 lockrun。Lockrun 检查 cron 是否正在运行。如果正在运行,那么它不会启动另一个相同的 cron 作业。
看看delayed_job gem。我个人没有使用它,但听说这是一个很好的解决方案。