独角兽工作者超时问题

7
我正在开发一个AngularJS(前端)应用,运行在Nginx Web服务器上,向运行在Unicorn应用服务器上的Rails API(后端)发送请求。
我承认我只是一个开发人员,对服务器管理一窍不通,所以我只是启动了这些服务器并开始使用它们。
应用程序可以正常工作,但Unicorn表现出一种奇怪的行为。每次启动时,我总是会遇到这个错误:
roberto@ubuntu:~/dev/scripts$ ./start_unicorn.sh 
I, [2014-06-14T11:46:06.085834 #4258]  INFO -- : Refreshing Gem list
I, [2014-06-14T11:46:11.591592 #4258]  INFO -- : listening on addr=0.0.0.0:8080 fd=10
I, [2014-06-14T11:46:12.087321 #4258]  INFO -- : master process ready
I, [2014-06-14T11:46:12.151320 #4263]  INFO -- : worker=0 ready
I, [2014-06-14T11:46:12.150526 #4266]  INFO -- : worker=1 ready
E, [2014-06-14T11:46:39.112668 #4258] ERROR -- : worker=0 PID:4263 timeout (16s > 15s), killing
E, [2014-06-14T11:46:39.112898 #4258] ERROR -- : worker=1 PID:4266 timeout (16s > 15s), killing
E, [2014-06-14T11:46:39.118081 #4258] ERROR -- : reaped #<Process::Status: pid 4263 SIGKILL (signal 9)> worker=0
E, [2014-06-14T11:46:39.118634 #4258] ERROR -- : worker=1 PID:4266 timeout (16s > 15s), killing
E, [2014-06-14T11:46:39.121820 #4258] ERROR -- : reaped #<Process::Status: pid 4266 SIGKILL (signal 9)> worker=1
I, [2014-06-14T11:46:39.172067 #4284]  INFO -- : worker=1 ready
I, [2014-06-14T11:46:39.172620 #4281]  INFO -- : worker=0 ready

它需要一些时间才能响应。这种情况会持续发生。

我猜我可能缺少一些配置,但是不确定...

如果您需要更多的详细信息,比如配置文件,请告诉我。


你好,可以展示一下你的start_unicorn.sh脚本吗? - mpospelov
类似于https://dev59.com/3oTca4cB1Zd3GeqPAeEB,看起来有一个请求正在访问它并且挂起了。问题可能出在端点上,而不是unicorn本身。 - Wedge Martin
1个回答

3

您的资源有预编译吗?您是否处于生产环境中? 如果没有,在启动服务器并收到第一个请求时,Rails 将尝试编译您的资源,这可能需要超过 15 秒,并达到独角兽超时。

在您的 start.sh 文件中应该有以下内容:

export RAILS_ENVIRONEMENT=production

在部署期间,您应该执行以下命令:

rake assets:precompile


1
谢谢你的回答,Luc。但是我花了很多时间,却没有结果,所以我转向了 Puma。 - Rober

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接