我有一个使用 Unicorn (4.5.0) 和以下 unicorn.rb 文件部署到 Heroku Celadon cedar 堆栈的 rails 应用程序:
worker_processes 2 # amount of unicorn workers to spin up
timeout 30 # restarts workers that hang for 30 seconds
check_client_connection true
在看似随机的时间,它使用的服务(包括数据库)没有任何明显变化,独角兽将进入重启循环。他们将继续重新启动,并出现以下典型错误:
ERROR -- : worker=0 PID:935 timeout (31s > 30s), killing
问题是每个独角兽工人每 30 秒重新启动一次的频率更高。当底层测功机重新启动时它会停止,所以我猜它与独角兽主进程和heroku交互的方式有关。
还有其他人遇到这种情况或对可能的原因有任何想法吗?