我不想让我的开发机器上一直运行sphinx。当我通过netbeans运行我的应用程序时,我想要一种自动执行rake thinking_sphinx:start
的方法。有没有办法做到这一点
[还 - 我正在使用Windows]
思维狮身人面像需要作为一个单独的过程运行。
答案 0 :(得分:1)
您需要一个名为PsExec的第三方程序才能执行此操作。否则,您将无法使用Windows上的Ruby启动后台进程。
首先下载PsExec here。解压缩(至少)psexec.exe
并手动运行一次 - 您必须同意许可证: - /。
之后,将以下行添加到您的Rails应用的script/server
:
system 'PATH_TO_PSEXEC/psexec -d rake.bat'
现在使用与服务器并行运行的命令创建rake.bat
。将包含以下内容的文件放入Rails应用程序的根目录。
rake thinking_sphinx:start
此行应该可以解决问题,但可能会失败,例如当NetBeans的JRuby版本与主机上安装的Ruby不同时。或者如果没有安装Ruby。在这种情况下,您应该使用JRuby的完整路径调用rake:
"PATH_TO_NETBEANS/ruby2/jruby-1.2.0/bin/jruby" "PATH_TO_NETBEANS/ruby2/jruby-1.2.0/bin/rake" thinking_sphinx:start
立即启动服务器时,会弹出一个额外的Windows命令行,其中包含正在运行的rake任务。
毋庸置疑,您不应将代码添加到生产服务器上的script/server
。