2013-08-25 56 views

回答

1

無論您在Resque中有多少工作,都無關緊要。重要的是你有多少工人正在運行。在Resque中,每個工作者在一個單獨的進程中運行,因此打開自己與數據庫的連接。

如果需要關注連接數量,您可以嘗試使用Sidekiq來代替。 Sidekiq與Resque API兼容,但其工作人員在一個進程中以線程運行。這樣,您應該可以使用共享連接池來管理同時打開多少個連接。

+0

哪一個更好?我寧願有30個連接到我的數據庫在不同的工作人員,或多個線程在一個胖的過程? – botbot

+0

這一切都取決於。 :)如果你正在做大量的IO並且你的代碼是線程安全的,那麼使用Sidekiq把它們全部放在一個進程中,以儘量減少內存使用。如果你使用大量的CPU,每個工人應該有自己的專用過程。希望有所幫助。 – davogones