超时请求重做

时间:2014-09-21 19:42:46

标签: ruby-on-rails ruby heroku puma

我遇到了某种错误,在30秒超时后,服务器似乎再次收到该请求。

流程:

用户将几个(或多个)图像网址输入到发送到服务器的文本字段

sources = "mysite.com/1.jpg mysite.com/2.jpg mysite.com/1.jpg"

服务器按空格分割,每个网址都会创建一个新图像

sources.split(" ").map do |url|
  Photo.create(source: url)
end

Photo是一个带有回形针附件的模型,名为img,是一个源列 存在self.img_remote_url = self.source的after_action,以将源添加为附件的来源

请注意,我这里没有使用后台处理

问题从今天开始,但几天前它运作良好。 当图像数量导致请求超时时(因为处理时间超过30秒),就会发生这种情况。通常,它会继续处理服务器上的图像。现在,当超时发生时,从日志中看到,似乎再次收到请求,再次处理所有文件。

此时,(使用puma),第二个线程开始工作,但是再次,达到超时..这一直持续到所有线程,进程和dynos都已满并且无法再接收请求。然后处理完成,创建了多张照片并且非常不高兴程序员(我)

我不清楚为什么请求会重新发送到服务器。这不是客户端问题,因为复制不会立即发生,并且日志在发生超时错误时是正确的(H12)

我使用的是puma 2.9.1,ruby 2.1.3,rails 4.1.6,heroku cedar和最新的回形针。

超时时是否有任何导致请求重做的内容? 我该怎么调试呢? 可能是尚未发现的heroku路由机制中的错误吗?

0 个答案:

没有答案