以下のコマンドで、resqueを実行しているワーカーを起動します
heroku ps:scale worker=1
しかし、私は知りたいです:私はresqueを実行するためだけに労働者全体にお金を払うので、なぜ複数の実行中のタスクを実行できないのですか?
例:AWS SQSをポーリングする必要があり、このポーリングのために別のワーカーがいるのは無駄です。
次に、Resque、AWS_QUEUEを配置して、変換されたファイルをリッスンしようとしました。しかし、Herokuはワーカーをクラッシュさせます。
=== worker: `bundle exec rake worker:all`
worker.1: crashed for 2m
Procfile
web: bundle exec unicorn -p $PORT -c ./config/unicorn.rb
worker: bundle exec rake worker:all
worker.rake
namespace :worker do
task :all => [:environment, "sqs:listen_converted", "resque:work"] do
puts "All workers started"
end
end
sqs.rake
task "sqs:listen_converted" => :environment do
puts "Start to listen converted..."
Thread.new do
queue = AWS::SQS::Queue.new(SQSADDR['incoming'])
queue.poll do |msg|
...
end
end
できますか?ありがとう!!