Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 如何打包包含无限循环的rack web应用程序_Ruby_Rake - Fatal编程技术网

Ruby 如何打包包含无限循环的rack web应用程序

Ruby 如何打包包含无限循环的rack web应用程序,ruby,rake,Ruby,Rake,我想打包一个rack web应用程序以分发它,其中有一个无限循环。所以它不会停止,直到我的ctrl-c。但似乎ocra只有在“自然”结束时才会打包,并且ctrl-c停止了这个过程 在call中尝试使用exit或abort方法将对象传递给rake。在这之后,整个过程不会结束,但会出现一些跟踪信息 可以在线程中调用rake.run,并在给定时间后结束应用程序。但我不想发布自杀版本。那么,有没有更合适、更可控的方式来正常结束这一局面呢 不确定这是否是一个疯狂的问题,但请提前感谢。根据,OCRA在运行时

我想打包一个rack web应用程序以分发它,其中有一个无限循环。所以它不会停止,直到我的ctrl-c。但似乎ocra只有在“自然”结束时才会打包,并且ctrl-c停止了这个过程

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看看我对这个问题的回答是否有帮助。