Railsアプリケーション内でDRbを使用して、Railsプロセスの外部で高価なタスクをオフロードしています。DRbObject.newを使用してクライアントスタブを初期化する前に、DRb.start_serviceを使用してDRbサービスを初期化する必要があります。
モデルまたはコントローラーでこれを行うと、スレッドが不確実な状態のままになるように見えます。私が雑種を出るとき、それは言います:
Reaping 1 threads for slow workers because of 'shutdown'
Waiting for 1 requests to finish, could take 60 seconds.
environment.rbでサービスを初期化することは、大きな注意点でうまく機能しているようです。私は、一部のRailsワーカーでもbackgroundrbを使用しています。それらが初期化されると、environment.rbが実行され、二重初期化による問題が再び発生します。
クライアントでDRb.start_serviceを呼び出す正しい場所はどこですか?または、同じプロセスで2回実行することを回避できるように、初期化をテストする方法はありますか?