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