Ruby 如何打包包含无限循环的rack web应用程序
我想打包一个rack web应用程序以分发它,其中有一个无限循环。所以它不会停止,直到我的ctrl-c。但似乎ocra只有在“自然”结束时才会打包,并且ctrl-c停止了这个过程 在Ruby 如何打包包含无限循环的rack web应用程序,ruby,rake,Ruby,Rake,我想打包一个rack web应用程序以分发它,其中有一个无限循环。所以它不会停止,直到我的ctrl-c。但似乎ocra只有在“自然”结束时才会打包,并且ctrl-c停止了这个过程 在call中尝试使用exit或abort方法将对象传递给rake。在这之后,整个过程不会结束,但会出现一些跟踪信息 可以在线程中调用rake.run,并在给定时间后结束应用程序。但我不想发布自杀版本。那么,有没有更合适、更可控的方式来正常结束这一局面呢 不确定这是否是一个疯狂的问题,但请提前感谢。根据,OCRA在运行时
call
中尝试使用exit
或abort
方法将对象传递给rake
。在这之后,整个过程不会结束,但会出现一些跟踪信息
可以在线程中调用rake.run
,并在给定时间后结束应用程序。但我不想发布自杀版本。那么,有没有更合适、更可控的方式来正常结束这一局面呢
不确定这是否是一个疯狂的问题,但请提前感谢。根据,OCRA在运行时设置一个环境变量OCRA\u EXECUTABLE
因此,您可以在代码中检查环境变量,并在OCRA运行时中断循环,例如:
while true
break if ENV.has_key? 'OCRA_EXECUTABLE'
...
end
哇,这太有用了。谢谢我一直在想一些奇怪的方法,以一个特殊的HTTP请求同步结束它。@Jokester,我刚刚发现了你的老问题。我现在也有同样的问题,我用
Rack::server.start options
启动服务器,但我不确定检查环境变量如何帮助我解决这个问题。Hello@Sven。您是否也在尝试使用OCRA进行打包?我记不清了,但我想我们只能在打包时使用env变量来中断循环。当以.exe
@Jokester I运行时,它仍然是一个无限循环,现在显示了我如何跳过启动服务器的调用,这给我带来了其他问题。。你还记得你做这件事的时候有没有类似的问题吗?@Sven看看我对这个问题的回答是否有帮助。