【发布时间】:2013-04-18 07:24:47
【问题描述】:
我正在为一个使用 ruby on rails 的项目工作。有一页包含项目列表,您可以选择其中多个并一次更改其信息。但是当数据太大并且您一次选择太多项目来处理时。它会运行几分钟,然后页面会显示错误消息,这是由服务器超时引起的...如何让它运行十分钟但不超时并返回错误消息?
【问题讨论】:
-
在后台处理长任务
标签: ruby-on-rails ruby timeout
我正在为一个使用 ruby on rails 的项目工作。有一页包含项目列表,您可以选择其中多个并一次更改其信息。但是当数据太大并且您一次选择太多项目来处理时。它会运行几分钟,然后页面会显示错误消息,这是由服务器超时引起的...如何让它运行十分钟但不超时并返回错误消息?
【问题讨论】:
标签: ruby-on-rails ruby timeout
没有一种方法可以做到这一点。
首先,你可以在你的日志中查看是否有长的sql查询,如果你看到一些很长的,你可以尝试优化它们。
您还可以使用 rails-footnotes 之类的 gem 在开发环境中查看每个页面底部的 sql 查询。
如果您正在执行一些昂贵的任务,请尝试使用 resque 或 delay_jobs 等工具在后台处理它们。
【讨论】:
最好的用户友好解决方案是使用一些后台任务...
比如delayed_job,例如:
def my_action
do_some_stuff
end
handle_asynchronously :my_action, :priority => 1
然后,您的操作将异步完成,您的服务器将继续正常工作。
【讨论】: