0
對於長時間運行的進程(如郵寄和發佈到外部網站),使用Ruby Thread.new而不是像Delayed Jobs或Resque這樣的後臺工作器可以嗎?使用Thread.new與Rails應用中的Resque等後臺工作人員
對於長時間運行的進程(如郵寄和發佈到外部網站),使用Ruby Thread.new而不是像Delayed Jobs或Resque這樣的後臺工作器可以嗎?使用Thread.new與Rails應用中的Resque等後臺工作人員
這取決於你的意思。 Ruby有一個全局解釋器鎖(大多數實現無論如何 - JRuby是一個例外),這意味着使用Thread.new方法不會獲得真正的併發性。這並不意味着你沒有得到任何併發。這在更深入在多個地方討論:
延遲作業和Resque方法都涉及具有執行長時間運行的操作的一個或更多個單獨的過程(S)。有了多個進程,你將在你的Rails應用程序和後臺工作進程之間產生真正的併發性,因爲GIL不會妨礙你。