我们有一个设置,在同一个服务器上运行相同Rails应用程序的两个不同环境(例如staging
和training
)。我们正在实施一项依赖于delayed_job
宝石的功能。在同一台服务器上为不同环境运行delayed_job
我们发现在两种环境下都不可能运行delayed_job start
,因为第二个看到第一个实例并认为它已在运行。但是,-i
命令开关(staging\bin\delayed_job -i staging start
和training\bin\delayed_job -i training start
)允许两个实例共存;但它看起来像这个开关设计为一个应用程序启动多个工作人员(很像delayed_job -n 2 start
),而不是多个应用程序。
我们并不清楚以这种方式启动的守护进程是否会正确处理来自他们自己的应用程序的作业,或者是否需要进一步的配置来实现此目的。任何人都可以启发我们吗?
看谢谢,这很有帮助。我们从不同的源代码库运行,所以PID和日志正常工作。在回答之前,我们发现'-i'选项确实可以为进程名添加一个标识符。不过,'-p'可能更“正确”。 – Chowlett
@Chowlett虽然'-i'似乎可以工作,但请记住它应该用于指定_numeric_标识符,并且它不能与'-n'结合使用来指定工作人员的数量。 另外,'-p'对于同一个目录中的pid文件冲突没有实际的帮助,它只是让进程本身具有更有意义的名称。 – Vince