我的Nginx + Passenger设置如下:
passenger_max_pool_size 6;
passenger_max_requests 600;
并且在我的Rails Controller中,我以以下方式使用线程来执行excel导入:
t = Thread.new do
@json_response = Import::Admin.create_admin_user params
end
我遇到的问题是,在该进程处理了600个请求之后(为避免内存泄漏而设置的限制),即使上述线程仍在运行并在其上运行,它也会关闭该进程。
您使用的线程不正确,服务器不会等待线程完成。如果需要执行重量计算,请使用后台作业。例如带有Sidekiq的ActiveJob。