Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.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 告诉Merb不要超时_Ruby_Timeout_Mongrel_Merb - Fatal编程技术网

Ruby 告诉Merb不要超时

Ruby 告诉Merb不要超时,ruby,timeout,mongrel,merb,Ruby,Timeout,Mongrel,Merb,在发布了一个与nginx相关的问题后,我的调查又进一步了:问题是,merb框架在大约30秒后超时。如果我告诉底层nginx服务器不要超时,merb会超时,我找不到方法告诉它不要超时;我需要处理长达几分钟的请求 有什么提示吗?非常感谢 --更新-- 似乎是merb背后的混血儿造成了这个错误。有什么方法可以改变merb运行的mongrel超时吗?也许另一种方法会产生更好的结果-与其解决超时问题,不如通过延迟任务的执行来最大化吞吐量 长时间运行任务的一些方法是使用run\u later或exec一个单

在发布了一个与nginx相关的问题后,我的调查又进一步了:问题是,merb框架在大约30秒后超时。如果我告诉底层nginx服务器不要超时,merb会超时,我找不到方法告诉它不要超时;我需要处理长达几分钟的请求

有什么提示吗?非常感谢

--更新--


似乎是merb背后的混血儿造成了这个错误。有什么方法可以改变merb运行的mongrel超时吗?

也许另一种方法会产生更好的结果-与其解决超时问题,不如通过延迟任务的执行来最大化吞吐量

长时间运行任务的一些方法是使用run\u laterexec一个单独的辅助进程来完成任务

def run_in_background(r)
    Thread.new do
        response = IO.popen(r) do |f|
            f.read
        end
    end
end
在这两种情况下,您都应该返回202(已接受)作为状态代码和URL,调用应用程序可以从中获取状态更新


我使用这种方法来处理导致后台批处理进程执行的请求。每个文件都将其开始时间、进度和完成时间写入数据库(您可以很容易地使用一个文件)。调用URL时,我会从数据库获取进度,并将其返回到调用过程。

您好,谢谢您的回答,但这不是一个选项,因为另一个函数正在等待返回值,我无法重写整个应用程序。没问题,抱歉,我无法提供更多帮助。