2016-03-15 130 views
0

我想在不同的服務器上遠程運行sidekiq工作者來分流負載。找不到任何文檔。我在官方的sidekiq文檔中找不到任何東西,我嘗試在谷歌搜索'sidekiq遠程服務器','sidekiq遠程工作人員',但找不到任何有用的東西。 這裏是我想給 enter image description hereSidekiq遠程服務器設置

我的問題是:我是否需要複製相同的應用程序代碼,生產服務器上所有插袋服務器?如何配置sidekiq以這種方式工作,或者閱讀有關此類配置的文檔或源代碼?感謝所有人的幫助!

回答

2

Q1。我是否需要將與生產服務器上相同的應用程序代碼複製到所有的sidekicks服務器上?
答案:是

Q2。如何配置Sidekiq以這種方式工作,或者閱讀有關此類配置的文檔或資源?
答:您需要將Sidekiq連接到通用的Redis服務器。假設您的Sidekiq工作人員連接到服務器上的Redis服務器,請說R.然後,當您排隊工作時,您需要配置您的Sidekiq gem以連接到服務器R上的Redis。

要配置Sidekiq以使用外部服務器可以使用

Sidekiq.configure_server do |config| 
    config.redis = { url: 'redis://redis.example.com:7372/12' } 
end 

您可以檢查documentation甚至進一步的細節。核心思想是,你需要一個通用的數據庫服務器,每個Sidekiq工作人員和隊列將連接到這個數據庫服務器。

+0

由於所有sidekiq進程都試圖讀取和寫入同一個數據庫,所以在這種情況下不要面對任何重複的工作。 – Sai

+1

@Sai No.在Redis上執行的操作是原子操作。 –

1

第一個問題 - Sidekiq需要應用程序代碼來完成其工作,因此您需要確保將其複製到每個任務服務器上。

Configuring the Sidekiq is pretty simple,但設置這些服務器將會涉及更多一點。我個人喜歡Amazon's Opsworks這種堆棧,我使用this Chef recipe來配置每臺運行Sidekiq的機器。 (我使用Monit來保持它運行,這就是爲什麼我將它標記爲Monit特有的配方。)

如果您可以提供有關您的首選部署和託管選擇的更多信息,我們可以給您更詳細的回覆。祝你好運。 :)