在Heroku上运行多个不同的进程

时间:2012-12-12 10:22:43

标签: heroku

我一直在网上搜索,但似乎无法找到我确切问题的答案。

我有一个使用参数运行的ruby脚本。例如,Append.rb

如果我调用ruby Append.rb 0 - 这将启动一个线程并执行一些逻辑

如果我调用ruby Append.rb 2000 - 这将启动一个新线程并执行不同的逻辑

如果我设置了一个Procfile,并使用'fromen start'在本地运行,则会同时触发两个脚本并且它可以正常工作。

Procfile看起来像这样:

worker:ruby Append.rb 0

worker:ruby Append.rb 1000

如果我在Heroku中做同样的事情,它会启动2个dynos,但都会触发:

Append.rb 1000

我有什么想法可以解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

web之外的任何内容只是一个标识该过程的abritrary字符串,不需要调用worker。但是,该字符串确实需要是唯一的。因此,只需称它为不同的东西:

worker_0: ruby Append.rb 0
worker_1000: ruby Append.rb 1000

然后您可以在缩放命令中使用这些标识符:

heroku ps:scale worker_0+1
heroku ps:scale worker_1000=1

等等。有关更多Procfile信息,请参见此处:http://neilmiddleton.com/the-procfile-is-your-friend/