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

档案

web: bundle exec unicorn -p $PORT -c ./config/unicorn.rb
worker: bundle exec rake worker:all

工人.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