使用resque运行的同一个worker在heroku上运行多个rails任务

时间:2012-11-29 17:42:42

标签: ruby-on-rails heroku amazon-web-services resque amazon-sqs

使用以下命令,我启动了一个运行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

可以吗?谢谢!

0 个答案:

没有答案