Heroku没有开始工作

时间:2016-06-05 09:14:43

标签: ruby-on-rails heroku resque

我的Heroku应用程序没有启动任何工作人员。我首先扩展了工人:

heroku ps:scale resque=1 -a test-eagle
Scaling dynos... done, now running resque at 1:Free

然后当我检查工人时,我看到了:

heroku ps:workers -a test-eagle
<app> is running 0 workers

这里可能有什么问题?这就是我的Procfile看起来的样子:

web: bundle exec puma -C config/puma.rb
resque: env TERM_CHILD=1 bundle exec rake resque:work QUEUE=* COUNT=1

或者是因为它是一个免费的应用程序,它只能处理1个网络工作者而不能处理其他动态数据库?

编辑:

当我使用heroku ps -a <appname>查看时,我发现刚刚启动工作人员后崩溃了:worker.1: crashed。这在应用程序本身中没有做任何事情。

1 个答案:

答案 0 :(得分:0)

更新:嗯,我有一个“免费”的应用程序运行,恰好运行Puma。所以,我更新了Procfile,如下所示:

web: bundle exec puma -C config/puma.rb
resque: env TERM_CHILD=1 bundle exec rake resque:work QUEUE=* COUNT=1

之后,我将应用程序推送到Heroku并按照您的指定运行heroku ps:scale。它的工作原理如下:

D:\Bitnami\rubystack-2.2.5-3\projects\kctapp>heroku ps -a kctapp
=== web (Free): bundle exec puma -C config/puma.rb (1)
web.1: up 2016/06/06 19:38:24 -0400 (~ 1s ago)


D:\Bitnami\rubystack-2.2.5-3\projects\kctapp>heroku ps:scale resque=1 -a kctapp
Scaling dynos... done, now running resque at 1:Free

D:\Bitnami\rubystack-2.2.5-3\projects\kctapp>heroku ps -a kctapp
=== web (Free): bundle exec puma -C config/puma.rb (1)
web.1: up 2016/06/06 19:38:24 -0400 (~ 51s ago)

=== resque (Free): env TERM_CHILD=1 bundle exec rake resque:work QUEUE=* COUNT=1 (1)
resque.1: crashed 2016/06/06 19:39:18 -0400 (~ -3s ago)

请注意,它确实崩溃了。但是,我没有运行任何代码,所以这可能是为什么?另外,请注意我使用“heroku ps”命令作为“heroku ps:workers”,因为我抛出一个错误,说它已被弃用。

这是我的config / puma.rb,如果有帮助:

workers Integer(ENV['WEB_CONCURRENCY'] || 4)
threads_count = Integer(ENV['MAX_THREADS'] || 8)
threads threads_count, threads_count

preload_app!

rackup      DefaultRackup
port        ENV['PORT']     || 5000
environment ENV['RACK_ENV'] || 'development'

使用编辑:我错过了缩放命令...

请参阅Heroku here中的缩放。我看到的选项是web,worker,rake或console,而不是resque。我尝试了你的命令,它没有认出“那个阵型”。我很好奇。

检查免费应用,它不会为您提供添加工作人员dyno的选项。检查一个爱好应用程序,您可以添加工作人员。使用专业应用程序,您可以使用1X,2X和Performance dynos在Web和worker之间混合和匹配dyno类型。