2012-02-16 49 views
0

我已经编写了一个类,通过监视提交的作业表来运行后台作业服务器。运行服务器所需的代码基本上是:叉作为任务控制的后台作业任务栏杆

j = JobServer.new 
j.run! 

我在测试一个Rake任务这个包裹,但现在我想办法后台工作,并提供一个init脚本来管理该服务器。我花了一段时间玩了daemons宝石,但最终得出结论,它关闭了我的文件描述符,当脱离后台proc。这是行不通的,因为我的数据库后端是SQLite3,关闭那个文件描述符往往会让Rails生气。

有没有简单的方法来完成我想要做的事情?我会补充一点,我刚刚在另一个用户的回答中看到了delayed_job gem,但是如果我可以帮忙的话,我不想重写我的JobServer类。

+0

我认为你应该尝试resque或delayed_job,可能它没有太多的改变你的code.try resque根据我的意见 – Amar 2012-02-17 04:36:50

回答

0

您使用的菌种方法

http://www.ruby-doc.org/core-1.9.3/Process.html#method-c-spawn 

可能会写一个可爱的小耙子,这将让你开始/停止/重启作业服务器。

+0

我最终用'Process :: fork'自己写逻辑。我开始研究'Process :: spawn',但我需要从Rake分离出来的Rails环境。感谢您指点我正确的方向。 – 2012-02-17 15:47:19