将delayed_job作为Windows服务运行

Rus*_*ell 5 windows-services ruby-on-rails delayed-job

我试图让delayed_job作为Windows服务工作.

我完全厌倦了Windows,我甚至无法用语言表达,但由于第三方依赖,我现在仍然坚持使用它.

运行rake jobs:work在控制台中启动工作程序没有问题.

我创建了一个空的Windows服务来启动和关闭工作者使用sc create DelayedJobWorker....

但是,我无法获得启动和停止工作的服务.我不确定最好的方法是什么 - 我应该将服务参数化/要求它调用.

任何建议感激不尽.

Rus*_*ell 5

我是这样做的:

  1. 将srvany.exe从Windows资源工具包复制到C:\windows\system32.

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

  3. 将调用的注册表项添加Parameters到位于的服务注册表项HKEY_LOCAL_MACHINE > SYSTEM > CurrentControlSet > services > JobQueue

  4. 将以下三个字符串值添加到新的注册表项.

如下:

Application="c:\ruby193\bin\ruby.exe"
AppDirectory="$PATH_TO_RAILS_APP"
AppParameters="c:\ruby193\bin\rake jobs:work RAILS_ENV=$ENVIRONMENT"
Run Code Online (Sandbox Code Playgroud)