运行Heroku Scheduler的工作进程的Procfile

时间:2013-05-29 17:51:59

标签: heroku scheduled-tasks procfile

我有一个繁重的过程,它会从API下载数据,我希望用'Heroku Scheduler'来安排。 (https://addons.heroku.com/scheduler

我想要一份专门的工作流程。我该如何定义我的Procfile?

如何在调度程序插件设置页面中定义辅助任务?

enter image description here

1 个答案:

答案 0 :(得分:5)

我假设您正在使用rails。如果您不是,那么您将不得不稍微更改说明,但一般说明有效。

您需要一个命令才能运行数据下载程序。在Rails中,最好的方法是在/lib/tasks/scheduler.rake中创建一个名为api_data_downloader的rake命令。

如果你没有使用rails,那么创建一个脚本(你可以把它放在bin中)。

然后要添加作业,请转到Heroku仪表板上的应用程序。单击“常规信息”,然后单击调度程序加载项。点击“添加工作”,然后选择频率和时间。对于作业,输入将运行脚本的命令。对于Rails,你可以运行'rake api_data_downloader'。否则,您可能需要根据需要执行“ruby api_data_downloader.rb”或“php api_data_downloader”等操作。

您可以阅读调度程序应用中的blog post或阅读其上的documentation

调度程序应用程序是one-off dyno而不是工作人员dyno。调度程序附加组件适用于需要超过几分钟的进程的短任务和工作器dynos。如果你需要一个worker dyno,那么在proc文件中你需要指定

worker: rake api_data_downloader

并使用

进行扩展
heroku ps:scale worker=1

调度程序加载项和工作器dyno彼此不同。