Ruby on rails 如何让heroku中长时间运行的线程监听rails中的多个aws sqs队列?

Ruby on rails 如何让heroku中长时间运行的线程监听rails中的多个aws sqs队列?,ruby-on-rails,ruby-on-rails-3,heroku,amazon-web-services,amazon-sqs,Ruby On Rails,Ruby On Rails 3,Heroku,Amazon Web Services,Amazon Sqs,我有两个任务名为task sqs:listen\u converted和task sqs:listen\u failed 第一个侦听已转换的文件并在postgres中为其创建记录 第二个在文件记录中设置了一个标志,表示转换失败 这些任务必须永远侦听SQS队列并读取发布到该队列的消息。 他们简单的代码是: task "sqs:listen_converted" => :environment do queue = AWS::SQS::Queue.new(SQSADDR['co

我有两个任务名为task sqs:listen\u converted和task sqs:listen\u failed

第一个侦听已转换的文件并在postgres中为其创建记录

第二个在文件记录中设置了一个标志,表示转换失败

这些任务必须永远侦听SQS队列并读取发布到该队列的消息。 他们简单的代码是:

  task "sqs:listen_converted" => :environment do
      queue = AWS::SQS::Queue.new(SQSADDR['converted'])

      queue.poll do |msg|
      begin
         ...
      end
  end

  task "sqs:listen_failed" => :environment do
      queue = AWS::SQS::Queue.new(SQSADDR['failed'])

      queue.poll do |msg|
      begin
         ...
      end
  end
在heroku中,我可以让这两个进程运行,执行命令:

ps:scale sqs_converted=1 sqs_failed=1
不幸的是,这样做,我将不得不为每一个支付36美元

我怎么能让它在heroku的一个dyno上运行呢

也许通过heroku api gem运行分离的rakes进程

heroku = Heroku::API.new(:api_key => 'api_key')
heroku.post_ps('myapp', "rake sqs:listen_converted", { :attach => false })
heroku.post_ps('myapp', "rake sqs:listen_failed", { :attach => false })
谢谢