我們有一個設置,在同一個服務器上運行相同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