🖥
#AWS SQS の Dead Letter Que に送られたメッセージを #Ruby の shoryuken gem の Worker
- rails関係なし
- AWS SQS の DeadLetterQue には通常のキューで処理に失敗したメッセージが送られるが、それをさらにWorkerで処理して「メッセージ受信可能」->「処理中」->「削除」の状態に遷移させる。
- コマンドに -q オプションでキューの名前を指定して、Worker の shoryuken_options にも同じキュー名を書いておかなければいけなさそう?
- 特に何も perform で処理をさせない場合は、ruby の Worker class は要らなそう
env
export AWS_ACCESS_KEY_ID=YYYYYYYYYY
export AWS_SECRET_ACCESS_KEY=ZZZZZZZZZZZ
export AWS_REGION=us-east-2
AWS console
コンソールでDeadLetterQueの名前がわかる (こいつ、どこで生まれるんだろう。最初からあるんだっけ?)
shoryuken_worker.rb
class ShoryukenWorker
include Shoryuken::Worker
shoryuken_options queue: 'XXX', auto_delete: true
def perform(sqs_msg, name)
puts '-' * 100
puts 'WORKER'
puts '-' * 100
puts name
puts sqs_msg
end
end
Command
bundle exec shoryuken -q XXX --require ./shoryuken_worker.rb
送信テスト
AWS console のキューの操作で、DeadLetterQueにも直接メッセージを送信可能
Worker の結果
Original by Github issue
チャットメンバー募集
何か質問、悩み事、相談などあればLINEオープンチャットもご利用ください。
公開日時
2019-09-19
Discussion