2016-09-30 10 views
1

Как относительный новичок в AWS, это была небольшая кривая, получающая жемчужину Shoryuken (с активным заданием и активной записью) для работы на основе документации по установке.Рельсы: создание Shoryuken, активная работа и Amazon SQS

  1. Middleware: Я не был уверен, что если промежуточное программное обеспечение является обязательным компонентом установки, так как она приносит только в базовом примере. Я понимаю, что это полезно, если вам нужно выполнить операции до или после извлечения сообщений из очереди.

  2. Shoryuken вставки, но не пропущенных сообщений от SQS: На данный момент, Shoryuken доставляет сообщение в очередь SQS, я могу увидеть сообщения (в сообщениях видимые) в консоли 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 

Я бы признателен за любые советы, которые могут помочь мне понять, почему сообщения не извлекаются и действовали на Шорюкен.

Спасибо!

+0

относительно промежуточного программного обеспечения, не могли бы вы указать мне документы, которые вас смутили? –

ответ

0

Оказывается, что форматирование YAML было неправильным. queues не должно быть ниже aws, но на том же уровне. Вот правильная версия:

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 
+0

Ссылка на решение: https://github.com/phstc/shoryuken/issues/253#issuecomment-251468159 –