sho*_*_sm 0 ruby-on-rails heroku crontab scheduled-tasks delayed-job
我开发了一个延迟作业和 cron 作业的应用程序,我需要将它部署到 Heroku。我意识到我延迟的工作需要 Heroku 附加组件“Heroku Scheduler Standard”,它的成本为 34.50 美元。1)这是否意味着我需要购买它以便我的延迟和cron作业自动运行?我想知道延迟作业和cron作业是否可以通过使用Heroku schedular来完成,那么为什么我们仍然需要javan/whenever和collectionidea/delayed_job?我可以最好在免费条件下在 Heroku 中使用这些吗?
2)我的 cron 工作在 Heroku 中不起作用。我如何在heroku中运行我的every gem?
您的问题中似乎有几种想法混杂在一起。我会尽力将它们分开:
a) Heroku 上的延迟作业
处理在 DelayedJob 中排队的作业(即位于数据库中的 delay_jobs 表中的记录)的一种方法是运行以下 rake 任务:
$ rake jobs:work
Run Code Online (Sandbox Code Playgroud)
在 heroku 上,这个 rake 任务通常通过一个“worker”进程来运行。
默认情况下,对于 rails 应用程序,您的 heroku 应用程序应该已经带有一个用于 'workers'(最初设置为 0)的滑块,它将运行上面的 rake 任务。仅将其滑动到“1”(这将花费您每月约 34.00 美元)将在专用 heroku 实例的后台启动 DelayedJob 出队过程,您的代码库独立于您的网络动态。
请注意,DelayedJob 不需要 Heroku 的“调度程序”附加组件。另请注意,heroku 按每月处理小时数收费。因此,如果您每月将“worker”滑至“1”一小时,然后在完成后再次将其滑回“0”,您将支付的费用远远低于约 34 美元的费用。还有一种方法可以以编程方式打开和关闭工人。
b) Heroku 上的 Cron
就目前而言,在 heroku 或其他基于云的应用程序服务提供商上无法管理您自己的自定义 cron文件。一切都是短暂的,您或您的代码无法更改已部署的文件。
在这种情况下,Heroku 的调度程序是替代 cron 的合适附加组件。您应该能够在您的 heroku 调度程序中设置任务来执行您的 cron 任务当前正在执行的操作。
最后我查了一下,heroku 的调度程序是免费的(见:https : //addons.heroku.com/scheduler),所以我不知道你为什么说它是 34.50 美元。
希望这可以帮助。
| 归档时间: |
|
| 查看次数: |
901 次 |
| 最近记录: |