1

Ich arbeite an einer Rails 4 App, die E-Mails versendet, für Neuanmeldungen und so, und ich versuche SQS einzurichten deliver_later zu verwenden, um sie der Warteschlange hinzuzufügen. In der Entwicklung simuliere ich das mit Fake_SQS.ActionMailer sendet keine E-Mails, die in Fake_sqs eingereiht sind

Die Nachrichten werden erfolgreich zur Warteschlange hinzugefügt. Wenn ich binding.pry benutze bekomme ich (schön formatiert).

resp = sqs.receive_message({queue_url: "http://localhost:4568/mailers"}) => 
#<struct Aws::SQS::Types::ReceiveMessageResult 
messages = [#<struct Aws::SQS::Types::Message 
    message_id="95c380c7-9710-449e-beb6-19b19cc88e04", 
    receipt_handle="7b51a9568a6301509459697376e867a6", 
    md5_of_body="d09027c2c92b19e572766360fc627630", 
    body="{\"job_class\" : \"ActionMailer::DeliveryJob\", 
     \"job_id\"  : \"6edb612c-e5f7-4cc0-8236-4ac538344c66\", 
     \"queue_name\" : \"mailers\", 
     \"arguments\" : [\"UserMailer\", 
          \"test_email\", 
          \"deliver_now!\", 
          null], 
     \"locale\"  : \"en\"}", 
    attributes={}, 
    md5_of_message_attributes=nil, 
    message_attributes={}>]> 

Ich habe Probleme mit dem Senden dieser E-Mails später. Ich denke, ich muss den ActiveJob Worker starten, aber ich dachte, dass würde automatisch gestartet werden, wenn deliver_later verwendet wird. Wenn nicht, wie starte ich es und zeige es in meiner Warteschlange richtig an?

Antwort

2

Die Lösung war am Ende ziemlich einfach.

Erforderlich zum Hinzufügen config.active_job.queue_adapter = :inline in config/environments/development.rb.