1

以下のコマンドで、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

できますか?ありがとう!!

4

0 に答える 0