Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 使用作业控制将Rails任务分叉到后台作业中_Ruby On Rails_Ruby_Delayed Job - Fatal编程技术网

Ruby on rails 使用作业控制将Rails任务分叉到后台作业中

Ruby on rails 使用作业控制将Rails任务分叉到后台作业中,ruby-on-rails,ruby,delayed-job,Ruby On Rails,Ruby,Delayed Job,我已经编写了一个类,它通过监视提交作业的表来运行后台作业服务器。运行服务器所需的代码基本上是: j = JobServer.new j.run! 我已经将其包装在一个Rake任务中进行测试,但是现在我想要一种方法来对作业进行后台处理,并提供一个init脚本来管理这个服务器。我花了一段时间玩守护进程gem,但最终得出结论,在脱离后台进程时,它会关闭我的文件描述符。这不起作用,因为我的数据库后端是SQLite3,关闭该文件描述符会让Rails生气 有没有一个简单的方法来完成我想做的事情?我要补充的

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

j = JobServer.new
j.run!
我已经将其包装在一个Rake任务中进行测试,但是现在我想要一种方法来对作业进行后台处理,并提供一个init脚本来管理这个服务器。我花了一段时间玩
守护进程
gem,但最终得出结论,在脱离后台进程时,它会关闭我的文件描述符。这不起作用,因为我的数据库后端是SQLite3,关闭该文件描述符会让Rails生气


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

您可以使用Spawn方法

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

可能会编写一个很好的小rake,它可以让您启动/停止/重新启动作业服务器

我认为您应该尝试重新设置或延迟工作,可能是因为您的代码没有太多更改。根据我的意见尝试重新设置。我最后用
Process::fork
自己编写了逻辑。我开始研究
Process::spawn
,但我需要从Rake派生的Rails环境。谢谢你给我指明了正确的方向。