我有一个繁重的过程,它从我想用“Heroku Scheduler”安排的 API 下载数据。( https://addons.heroku.com/scheduler )
我想要一个专门的工作进程来完成这项工作。我应该如何定义我的 Procfile?
我应该如何在调度程序插件设置页面中定义工作任务?
我有一个繁重的过程,它从我想用“Heroku Scheduler”安排的 API 下载数据。( https://addons.heroku.com/scheduler )
我想要一个专门的工作进程来完成这项工作。我应该如何定义我的 Procfile?
我应该如何在调度程序插件设置页面中定义工作任务?
我假设您正在使用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”之类的操作。
调度程序应用程序是一次性测功机而不是工作测功机。调度程序插件适用于耗时超过几分钟的流程的短任务和工作人员测功机。如果您需要一个工人测功机,那么您需要在您的 procfile 中指定
worker: rake api_data_downloader
并扩大规模
heroku ps:scale worker=1
调度程序插件和工作人员测功机彼此不同。