如何处理ROR项目中的超时

时间:2013-04-18 07:24:47

标签: ruby-on-rails ruby timeout

我正在为铁轨上的红宝石项目工作。有一个页面,其中包含一个项目列表,您可以选择多个项目并一次更改其信息。但是当数据太大而你选择的项目太多而无法一次进入时。它将运行几分钟,然后页面将显示错误消息,它是由服务器超时引起的...我怎么能让它运行甚至十分钟而不是超时并返回错误消息?

2 个答案:

答案 0 :(得分:0)

最佳用户友好型解决方案是使用一些后台任务......

与delayed_job类似,例如:

def my_action
  do_some_stuff
end
handle_asynchronously :my_action, :priority => 1

然后,您的操作将异步完成,您的服务器将继续正常工作。

答案 1 :(得分:0)

没有一种方法可以做到这一点。

首先,您可以在日志中查看长sql查询,如果看到很长的查询,可以尝试优化它们。

你也可以使用rails-footnotes之类的gem来查看dev环境中每个页面底部的sql查询。

如果您正在执行一些昂贵的任务,请尝试使用resque或delayed_jobs等工具在后台处理它们。