2011-03-23 147 views
1

我在收到delayed_job重新启动时遇到问题。无法启动delayed_jobs进程

当我登录并运行耙delayed_job RAILS_ENV=production一切正常,所有作业的处理,但是如果运行RAILS_ENV=production script/delayed_job restart一个新进程启动,但没有工作的进行处理。

更新:我还应该提到,我可以在我的开发计算机上运行上述两个命令,并且在这两种情况下都可以正确处理所有延迟的作业。

更新:我删除了以前的更新,因为它是关于从我的机器上运行脚本,但因为我不能让delayed_jobs处理调用服务器上的命令时的任务,有没有用使事情变得更加复杂。

更新:前面我提到运行RAILS_ENV=production script/delayed_job restart启动了一个进程,但没有做任何处理。事实证明,即使在运行该命令后显示了一个pid,没有进程匹配该pid,或者是否有任何额外的ruby进程正在运行。下面是脚本/ delayed_job的文件的内容:我有同样的问题

#!/usr/bin/env ruby 

require File.expand_path(File.join(File.dirname(__FILE__), '..', 'config', 'environment')) 
require 'delayed/command' 
Delayed::Command.new(ARGV).daemonize 

我使用delayed_jobs V2.0.4

回答

2

,您需要将环境作为传递参数给脚本。这里也有一些怪癖在正确的脚本处理环境变量:

ruby script/delayed_job -e production restart 
+0

我给了一个没有运气的去。但是我注意到它在加载rails 2.3.8 gem时遇到了问题。有关这些详细信息,请参阅原始帖子中的更新。 – chris 2011-03-23 22:10:17

+0

在产生这个错误的机器上检查你的.gemrc文件...也许有任何搜索路径设置? – hurikhan77 2011-03-23 22:26:11

+1

根据https://github.com/collectiveidea/delayed_job/issues/7通过-e参数设置环境不再受支持,除非此问题稍后有修复。 – chris 2011-03-24 00:15:36

0

我有类似的问题得到任何delayed_job守护进程启动。我将其追溯到权限问题。如果您使用的是部署用户,请确保该用户的脚本/ delayed_job和日志目录可写。或者,修改/ etc/group以将该用户的权限授予这些文件上的分配组。

我的环境:
红宝石(REE-1.8.7-2012.02)
导轨(3.2.6)
的delayed_job(3.0.3)
delayed_job_active_record(0.3.2)
守护程序(1.1.8 )

0

如果这在您的生产机器上,请确保您有权访问tmp/pids文件夹。没有它,你将无法创建任何守护进程。