Прежде всего, я хорошо знаком с таймаутами H12 на Heroku.Я использую отложенное задание для длительных задач и т. Д.
Проблема, с которой я сталкиваюсь, заключается в том, что запрос рельсов 3, который занимает 2 секунды локально, истекает из-за тайм-аута на Heroku.Я добавил логирование для всего действия контроллера, и как локально, так и на героку выполнение кода занимает около 2 секунд.
Пример из Heroku:
2011-09-28T20:06:43+00:00 app[web.2]: Started POST "/xyz" for 69.181.51.78 at Wed Sep 28 13:06:43 -0700 2011
2011-09-28T20:07:12+00:00 app[web.2]: ***saved in 0.027939 seconds
2011-09-28T20:07:12+00:00 app[web.2]: ***split in 0.006164 seconds
2011-09-28T20:07:12+00:00 app[web.2]: ***reject in 0.017268 seconds
2011-09-28T20:07:12+00:00 app[web.2]: ***validate in 0.029043 seconds
2011-09-28T20:07:13+00:00 heroku[router]: Error H12 (Request timeout) -> POST xyz.com/xyz dyno=web.2 queue= wait= service=30000ms status=503 bytes=0
2011-09-28T20:07:13+00:00 app[web.2]: ***duped in 0.561905 seconds
2011-09-28T20:07:13+00:00 app[web.2]: ***dropped cats in 0.005318 seconds
2011-09-28T20:07:14+00:00 app[web.2]: ***added in 0.148055 seconds
2011-09-28T20:07:14+00:00 app[web.2]: ***saved in 0.245283 seconds
2011-09-28T20:07:14+00:00 app[web.2]: ***handled in 1.721555 seconds
Как видно из последней строки, по данным регистрации весь процесс занимает 1,7 секунды, но ни одна из этих строк журнала не отображается в течение 29секунд (мы используем Rack.Timeout и устанавливаем его на 29 секунд)
Запрос довольно большой POST около 72 КБ, и в этой строке *** dup log я дублирую хэш, который примерно равентот же размер.Возможно ли, что я превышаю предел памяти Heroku, и это проявится как тайм-аут H12?