2016-05-23 60 views
0

我正在嘗試在Bluemix上使用sidekiq。我認爲我走在正確的軌道上,但它並不完全工作。如何在Bluemix上使用sidekiq

我有一個應用程序與Sinatra使用sidekiq作業,使許多行動。我設置以下線在我manifest.yml文件:

command: bundle exec rackup config.ru -p $PORT && bundle exec sidekiq -r ./server.rb -c 3

我認爲用這個命令sidekiq將運行,但是,當我把創建工作的終點,它仍然是「隊列」部分上Sidekiq小組。

我需要採取哪些措施才能讓sidekiq處理作業?

PS:我是Bluemix的初學者。我正在嘗試將我的應用從Heroku遷移到Bluemix。

回答

0

直截了當地回答這個問題「爲問」:

你的啓動命令不評估的第二部分,後「& &」的一個。如果你嘗試在你的本地環境中啓動它,結果會是一樣的。服務器將啓動,控制檯將簡單地停止服務器日誌,而不會在技術上評估爲true,直到您發送kill信號(因此'& &'之後的部分永遠不會同時運行)。

Subbing,只是'&'類似的修復,因爲兩者將在同一時間運行。

命令:束EXEC rackup config.ru -p $ PORT &束EXEC sidekiq

什麼並不理想與解決方案?呃,可能是很多東西。儘管最大的罪犯:有兩個進程在同一時間活動,其中只有一個預期和觀察(第二個)。

發送'(bluemix)cf stop'到由清單創建的應用程序實例,該命令在停止實例之前僅停止觀察到的實例 - 在這種情況下,我們無法確定第一個進程是否通過以下方式釋放了外部資源正確發送通知或關閉連接,或其他。


你也許可以考慮,而不是什麼:

1點之一。 Bluemix是一個CF實現,並且通過一個快速的manifest.yml部署,沒有什麼能夠阻止你讓app服務器和sidekiq工作器在不同的實例上運行。

2.更好的外殼。

命令:sh -c 'COMMAND1 &命令2 &等待'

** 3。待定,可能有很多選擇,但我也是初學者。**

0

上CloudFoundry爲基於機架的應用和你的員工單獨的應用程序實例將是可取的,因爲你可以:

  • 規模網絡/工人獨立(?更多的流量就擴展Web應用程序)
  • 部署的每個組件獨立,如果需要的話
  • 確保每道工序都健康檢查

使用&到的缺點正如其他答案中所建議的那樣,加入命令是第一個進程將在後臺啓動。這意味着如果第一個進程崩潰,您將無法進行可靠的監控並自動重新啓動。

CloudFoundry網站上有一個稍微過時的示例,其中一個用於網站,一個用於工作人員,用於獨立部署每個零件。