Ruby 告诉Merb不要超时
在发布了一个与nginx相关的问题后,我的调查又进一步了:问题是,merb框架在大约30秒后超时。如果我告诉底层nginx服务器不要超时,merb会超时,我找不到方法告诉它不要超时;我需要处理长达几分钟的请求 有什么提示吗?非常感谢 --更新--Ruby 告诉Merb不要超时,ruby,timeout,mongrel,merb,Ruby,Timeout,Mongrel,Merb,在发布了一个与nginx相关的问题后,我的调查又进一步了:问题是,merb框架在大约30秒后超时。如果我告诉底层nginx服务器不要超时,merb会超时,我找不到方法告诉它不要超时;我需要处理长达几分钟的请求 有什么提示吗?非常感谢 --更新-- 似乎是merb背后的混血儿造成了这个错误。有什么方法可以改变merb运行的mongrel超时吗?也许另一种方法会产生更好的结果-与其解决超时问题,不如通过延迟任务的执行来最大化吞吐量 长时间运行任务的一些方法是使用run\u later或exec一个单
似乎是merb背后的混血儿造成了这个错误。有什么方法可以改变merb运行的mongrel超时吗?也许另一种方法会产生更好的结果-与其解决超时问题,不如通过延迟任务的执行来最大化吞吐量 长时间运行任务的一些方法是使用run\u later或exec一个单独的辅助进程来完成任务
def run_in_background(r)
Thread.new do
response = IO.popen(r) do |f|
f.read
end
end
end
在这两种情况下,您都应该返回202(已接受)作为状态代码和URL,调用应用程序可以从中获取状态更新
我使用这种方法来处理导致后台批处理进程执行的请求。每个文件都将其开始时间、进度和完成时间写入数据库(您可以很容易地使用一个文件)。调用URL时,我会从数据库获取进度,并将其返回到调用过程。您好,谢谢您的回答,但这不是一个选项,因为另一个函数正在等待返回值,我无法重写整个应用程序。没问题,抱歉,我无法提供更多帮助。