使用下面的命令,我启动了一个运行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
可以做到吗?谢谢!!