我想在不同的服務器上遠程運行sidekiq工作者來分流負載。找不到任何文檔。我在官方的sidekiq文檔中找不到任何東西,我嘗試在谷歌搜索'sidekiq遠程服務器','sidekiq遠程工作人員',但找不到任何有用的東西。 這裏是我想給 Sidekiq遠程服務器設置
我的問題是:我是否需要複製相同的應用程序代碼,生產服務器上所有插袋服務器?如何配置sidekiq以這種方式工作,或者閱讀有關此類配置的文檔或源代碼?感謝所有人的幫助!
我想在不同的服務器上遠程運行sidekiq工作者來分流負載。找不到任何文檔。我在官方的sidekiq文檔中找不到任何東西,我嘗試在谷歌搜索'sidekiq遠程服務器','sidekiq遠程工作人員',但找不到任何有用的東西。 這裏是我想給 Sidekiq遠程服務器設置
我的問題是:我是否需要複製相同的應用程序代碼,生產服務器上所有插袋服務器?如何配置sidekiq以這種方式工作,或者閱讀有關此類配置的文檔或源代碼?感謝所有人的幫助!
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工作人員和隊列將連接到這個數據庫服務器。
第一個問題 - Sidekiq需要應用程序代碼來完成其工作,因此您需要確保將其複製到每個任務服務器上。
Configuring the Sidekiq is pretty simple,但設置這些服務器將會涉及更多一點。我個人喜歡Amazon's Opsworks這種堆棧,我使用this Chef recipe來配置每臺運行Sidekiq的機器。 (我使用Monit來保持它運行,這就是爲什麼我將它標記爲Monit特有的配方。)
如果您可以提供有關您的首選部署和託管選擇的更多信息,我們可以給您更詳細的回覆。祝你好運。 :)
由於所有sidekiq進程都試圖讀取和寫入同一個數據庫,所以在這種情況下不要面對任何重複的工作。 – Sai
@Sai No.在Redis上執行的操作是原子操作。 –