我的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
。这在应用程序本身中没有做任何事情。
答案 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类型。