LoginSignup
0
0

More than 1 year has passed since last update.

#AWS SQS の Dead Letter Que に送られたメッセージを #Ruby の shoryuken gem の Worker で処理する

Last updated at Posted at 2019-09-19
  • 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の名前がわかる (こいつ、どこで生まれるんだろう。最初からあるんだっけ?)

image

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にも直接メッセージを送信可能

image

Worker の結果

image

Original by Github issue

チャットメンバー募集

何か質問、悩み事、相談などあればLINEオープンチャットもご利用ください。

Twitter

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0