と という名前の 2 つのタスクがtask "sqs:listen_converted"
ありtask "sqs:listen_failed"
ます。
最初のものは、変換されたファイルをリッスンし、postgres にレコードを作成します。
2 つ目は、変換が失敗したことを示すフラグをファイル レコードに設定します。
これらのタスクは、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 では、次の 2 つのプロセスを実行してコマンドを実行できます。
ps:scale sqs_converted=1 sqs_failed=1
残念ながら、この方法では、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 })
ありがとう!