在Windows上将delayed_job作为服务运行

5
我正在尝试将delayed_job作为Windows服务运行。
我非常厌倦Windows,无法用言语来表达,但由于第三方依赖关系,我现在被迫使用它。
在控制台中运行“rake jobs:work”可以启动工作程序,没有任何问题。
我创建了一个空的Windows服务,使用“sc create DelayedJobWorker…”来启动和关闭工作程序。
然而,我无法启动和停止服务。我不确定最佳方法是什么-我应该将服务参数化/要求其调用什么。
如果您有任何建议,将不胜感激。
1个回答

5
我是这样做的:
  1. Windows资源工具包中复制srvany.exe到C:\windows\system32

  2. 使用sc create JobQueue binPath= "C:\windows\system32"创建一个空服务。

  3. 在服务注册表项HKEY_LOCAL_MACHINE > SYSTEM > CurrentControlSet > services > JobQueue中添加一个名为Parameters的注册表键。

  4. 将以下三个字符串值添加到新注册表键中。

如下所示:

Application="c:\ruby193\bin\ruby.exe"
AppDirectory="$PATH_TO_RAILS_APP"
AppParameters="c:\ruby193\bin\rake jobs:work RAILS_ENV=$ENVIRONMENT"

你说要添加“四个字符串值”,但我只看到了3个。 - Sully
哈哈,那不是我的重点。我尝试了这些指令,但服务启动失败了。我想你可能漏掉了一个参数。PATH_TO_RAILS_APP是否解析为基本目录? - Sully
啊,我明白了。你需要用实际的 Rails 应用路径和你想要运行在其中的环境替换 $PATH_TO_RAILS_APP 和 $ENVIRONMENT。 - Russell

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接