Я использую DRb в приложении Rails для разгрузки дорогостоящей задачи вне процесса Rails. Перед инициализацией клиентской заглушки с помощью DRbObject.new необходимо инициализировать службу DRb с помощью DRb.start_service.
Выполнение этого в модели или контроллере приводит к тому, что потоки остаются в неопределенном состоянии. Когда я выхожу из дворняги, он говорит:
Reaping 1 threads for slow workers because of 'shutdown'
Waiting for 1 requests to finish, could take 60 seconds.
Инициализация службы в environment.rb, кажется, работает нормально с большой оговоркой: я также использую backgroundrb с некоторыми работниками rails. Когда они инициализируются, они запускают environment.rb и снова приводят к проблемам из-за двойной инициализации.
Где находится правильное место для вызова DRb.start_service в клиенте? Или есть ли способ проверить инициализацию, чтобы я мог избежать этого дважды для одного и того же процесса?