ActionMailer 不发送在 Fake_sqs 中排队的电子邮件

ActionMailer not sending emails enqueued in Fake_sqs

我正在开发一个 Rails 4 应用程序,它可以发送电子邮件,用于新注册等,我正在尝试设置 SQS 以使用 deliver_later通过队列处理它们。在开发中,我通过使用 Fake_SQS.

来模拟这个

消息正在成功添加到队列中。如果我使用 binding.pry 我得到(格式很好)。

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={}>]>

我遇到的问题是稍后再发送这些电子邮件。我想我必须启动 ActiveJob worker,但我认为它会在使用 deliver_later 时自动启动。如果没有,我如何启动它并将其正确指向我的队列?

将以下内容添加到 config/environments/development.rb

config.active_job.queue_adapter = :inline