我在 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 中初始化服务似乎可以正常工作,但有一个很大的警告:我也在使用 backgroundrb 和一些 rails 工作人员。当它们初始化时,它们运行 environment.rb 并再次由于双重初始化而导致问题。
在客户端调用 DRb.start_service 的正确位置在哪里?或者,有没有办法测试初始化,这样我就可以避免为同一个过程做两次?