2017-03-02 115 views
0

Rails 5.0.1,Ruby 2.4.0,Sidekiq 4.2.9sidekiq共享線程間變量

我需要在後臺作業中統計一些特定的數據。我已經通過Postgres實現了它,但是我遇到了問題:Sidekiq併發性非常加載數據庫連接,如果我減少併發數,運行作業需要很長時間。

我發現可以使用原子計數器,並在某個時間段內將結果保存到數據庫。

那麼我可以在Sidekiq的線程之間共享變量嗎?如果是這樣,我應該如何初始化共享變量?如果線程之間共享變量

感謝您的任何建議

+0

您能詳細介紹一下您實際上想在sidekiq作業之間共享哪些信息嗎? –

+0

我只是應該存儲一些數據的計數,並且當這個計數得到限制時,我應該忽略作業並停止處理 –

+0

使用redis會最有意義 – Anthony

回答

0

,你需要擔心有互斥鎖定它,它只是擴展到一個單一的過程。

而是使用Redis命令增加計數器。

https://redis.io/commands/incr

+0

所以,使用Mutex是一個壞主意。對? –

+0

那麼你放棄sidekiq給你的好處是多線程。 –

+0

我沒有說使用Mutex是一個壞主意。我也沒有說這是個好主意。 –