【发布时间】:2013-07-18 16:35:51
【问题描述】:
As described here,我检测到我已被 Phusion Passenger 分叉,并恢复了一个后台线程,该线程正在聚合一些数据,这些数据最终将在设定的时间后打包并发送到远程服务器。但有时,在线程从睡眠中醒来之前,进程消失了,并且(根据我的日志消息,当线程醒来时报告 PID),我再也没有收到它的消息。有什么方法可以控制或防止这种情况?
【问题讨论】:
标签: ruby-on-rails ruby passenger
As described here,我检测到我已被 Phusion Passenger 分叉,并恢复了一个后台线程,该线程正在聚合一些数据,这些数据最终将在设定的时间后打包并发送到远程服务器。但有时,在线程从睡眠中醒来之前,进程消失了,并且(根据我的日志消息,当线程醒来时报告 PID),我再也没有收到它的消息。有什么方法可以控制或防止这种情况?
【问题讨论】:
标签: ruby-on-rails ruby passenger
您不应该在Passenger 托管进程中创建线程。如果Passenger 认为您的进程没有忙于处理请求,则可以在不发出警告的情况下将其关闭。这些后台线程应仅在您的请求处理过程中使用。
您想要的是一个像delayed_job 这样的后台作业处理工具来卸载它。
【讨论】: