0

據我所知,Ruby on Rails中的Observer模式並不是異步的,意味着Observer的執行會阻止正在處理的動作。在Rails Observer中使用線程

我知道關於delayed_job gem,我非常喜歡它,但有時它看起來有點太重,因爲某些目的。

在Observer的回調中啓動一個新線程怎麼樣?

我花了一些時間試圖找到這種方法的優點和缺點,並失敗了。

所以問題是:Observer的線程是否存在嚴重的缺陷?

回答

0

您是否聽說過sidekiq?這是做後臺處理的新「熱門」寶石(vs resque或delayedjob)。

FAQ

sidekiq使用redis的用於存儲和在一個多線程進程處理消息。 在原始處理速度方面,設置爲resque更容易,但效率更高。你的工人代碼確實需要線程安全。

還有一個關於它的railscast here

我會建議使用相比,創建自己的線程。

+0

我聽說過它,它看起來很酷,但它不回答我的問題) – Ivan

+0

不知道技術上的缺點,對不起。我不知道你想用什麼方法來使用這種方法。它只是感覺繁瑣,更容易出錯,難以使用等。 – Robin