You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert
unicornはconfで timeout 20 とかやっとくと、20秒以上かかったらそのworkerが殺される。それはいい。問題はその殺され方にあって、タイムアウトしたunicorn workerはmasterにKILLシグナルで強制的に殺される。KILLで殺されてしまうと、worker側でtrapして安全に終了処理をすることができない。 一番困るのは、Railsのloggerは(production環境のデフォルトだと)リクエストが終了するまでバッファリングしているので、リクエストの途中でKILLされてしまうとloggerがflushされない。つまり、unicornのタイムアウト時には、リクエストのログは一切production.logには出力されない。異常時のログが出ないとか、まじで困ると思うんだけど、みんなどうしてんだろ。 これに対処するためにはunicornのコードに手を入れるの
nginx + Rails + unicorn の環境で、レスポンスタイムが最大 120 秒の外部 API を実行した際、 Rails ( nginx ) からはタイムアウト ( 60秒 ) が返ってきているにもかかわらず、 実行された外部 API 側では処理されてしまうという現象が発生したので、タイムアウト値を設定した。 unicorn 側は、外部 API の 120 秒から余裕を持って 150 と設定 worker_processes 4 timeout 150 root = File.expand_path(File.dirname(__FILE__) + '/../') listen '/tmp/hoge.sock' pid '/tmp/hoge.pid' stderr_path "#{root}/log/unicorn_error.log" stdout_path "#{root
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く