Ruby on Rails应用程序中的间歇页面加载

时间:2011-08-23 11:07:53

标签: ruby-on-rails ruby nginx thin

这个让我难过。

我在这里的rails网站上有一个红宝石(rai​​ls 2.0.2,ruby 1.8.6,在nginx上运行的thins(0.8.2)),当我遇到某个动作时,我有时会得到正确的回答,有时我得到500错误。

此视图中的代码如下:

def show
  @item = Item.find_by_url_slug(params[:id])

  filename = "#{RAILS_ROOT}/public/#{@item.index.url}"      
  @data = File.open(filename, 'rb') { |f| f.read } # read data via File.

  render :layout => false
end

视图相当简单,show.html.erb包含

<%= @data %>

我怀疑是缓存,并尝试设置各种不同的标头(缓存控制,过期等),并尝试使用expires_now()方法,但无济于事。

出于兴趣,我还尝试在控制器中添加sleep(2)调用,并查看网络请求在500页面上显而易见的是此方法未被调用 - 以上代码中没有一个show操作是。

此外,当页面没有加载时,没有证据表明production.log中的调用。所以,没有错误调试,只是偶尔500(发生说2/4页加载)。

我应该补充一点,这个代码在本地工作正常,并且在我们的登台服务器上 - 只是在生产中这是一个问题。

任何想法??

0 个答案:

没有答案