2017-10-12 31 views
1

我正在處理許多Sidekiq作業(數千萬),因此返回1個字符串和2個整數。有一臺中央計算機託管Redis服務器/存儲結果,多臺計算機充當工作人員,從該中央計算機獲取數據。Sidekiq - 工人推到另一個隊列的任何副作用?

工人裏面,我也需要進行處理,並將結果後的邏輯被調用時,我只要致電:

Sidekiq::Client.push('class' => ResultsWorker, 'args' => [arg1, arg2, arg3]) 

和中央計算機上,我只是有另一名工人剛剛檢查這個隊列,將結果存儲在數據庫中。

我還沒有在Sidekiq社區的任何地方看到過這種「雙向溝通」的模式。所以我想知道,這有什麼原因嗎?這樣做有一些副作用嗎?我已經嘗試在接受結果並存儲它們的redis服務器組件上放置一個簡單的Web應用程序,但我認爲對於這樣的小數據,爲什麼不重新使用具有不同隊列的相同Redis服務器?

回答

1

我在Sidekiq社區的任何地方都沒有看到過這種「雙向溝通」的模式。

這並不需要特別提及或討論,因爲沒有什麼特別或不尋常的事情。一份工作確實可以讓一些其他工作入場。這在大應用程序中左右發生。


雖然你應該測量在你的情況下的具體情況的開銷。可能會發現,從第一份工作直接持續到數據庫會更快(不會造成網絡請求的損失等)

+0

我想知道您是否可以指向我這樣的任何相關/相似模式,已啓動一個月前與SideKiq合作,並渴望瞭解人們在實踐中如何應用它。 – daremkd

+0

@daremkd:你是什麼意思,「模式」?排隊工作不是模式:) –

+0

至於工作完成後通常會做什麼,什麼方法(我認爲'方法'是一個更好的詞:)))人們最常見的方式。現在我知道了a)向某些API發送HTTP請求b)將結果作爲參數發送給隊列 – daremkd

相關問題