AWSの初心者であるShoryuken gem(Active JobとActive Recordを使用)を設定文書に基づいて動作させるのはちょっと難しいことでした。Rails:Shoryuken、Active Job、Amazon SQSの設定
ミドルウェア:ミドルウェアはそれだけで基本的な例で得られたので、設定の必要な一部であった場合、私は確認されませんでした。キューからメッセージを取得する前または後に操作を実行する必要がある場合には、わかりやすいと思います。
Shoryuken SQSからメッセージをフェッチ挿入はなく、この時点で、ShoryukenはSQSキューにメッセージを配信され、Iは、AWSコンソールに(可視メッセージで)メッセージを見ることができるが、Shoryukenは、それらをフェッチされていませんキューに何もない場合でも実行します。
コンソール
irb(main):003:0> InvitationMailer.send_invite(ii).deliver_later
Enqueued ActionMailer::DeliveryJob (Job ID: 5c65184c-8656-42bd-95ce-e0ded78a9a44) to Shoryuken(development_mailers) with arguments: "InvitationMailer", "send_invite", "deliver_now", gid://projectname/Invitation/25
=> #<ActionMailer::DeliveryJob:0x007f7fad761a40 @arguments=["InvitationMailer", "send_invite", "deliver_now", #<Invitation id: 25, invite_code: "324234325", sender_id: 7, invitee_first_name: "Kylo", invitee_last_name: "Ren", invitee_email: "[email protected]", status: "sent", joined_member_id: nil, created_at: "2016-09-24 03:14:44", updated_at: "2016-09-24 04:16:36", invite_message: nil, sent_at: nil, accepted_at: nil, completed_at: nil, clicked_at: nil, source: nil>], @job_id="5c65184c-8656-42bd-95ce-e0ded78a9a44", @queue_name="development_mailers">
irb(main):004:0> Shoryuken.options
=> {:concurrency=>25, :queues=>[], :aws=>{}, :delay=>0, :timeout=>8, :lifecycle_events=>{:startup=>[], :quiet=>[], :shutdown=>[]}}
irb(main):005:0>
Shoryuken.yml
aws:
access_key_id: <%= ENV['AWS_ACCESS_KEY_ID'] %>
receive_message:
attribute_names:
- ApproximateReceiveCount
- SentTimestamp
region: <%= ENV['AWS_REGION'] %>
secret_access_key: <%= ENV['AWS_SECRET_ACCESS_KEY'] %>
concurrency: 25
delay: 0
queues:
- development_mailers
私はメッセージを取得し、行動されていない理由を私は把握することができます任意のヒントをいただければと思いますしょうゆうくんによって。
ありがとうございました!
ミドルウェアについては、あなたを混乱させるドキュメントを教えてください。 –