0

我有一个我写的 ActiveJob 适配器,如下所示:

require 'aws-sdk-core'

module ActiveJob
  module QueueAdapters
    class SqsAdapter
      class << self
        def enqueue(job)
          sqs = Aws::SQS::Client.new(region: 'us-east-1')
          sqs.send_message(
            queue_url: ENV['SQS_QUEUE_URL'],
            message_body: MultiJson.dump(job.serialize)
          )
        end
      end

      class JobWrapper
        class << self
          def perform(job_data)
            ActiveJob::Base.execute job_data
          end
        end
      end
    end
  end
end

当我通过它运行邮件程序时(例如UserMailer.registration_email(user).deliver_now),我的日志输出如下所示:

处理作业 e0f6afac-7b95-40c7-89d0-d9c63b808198 参数数量错误(1 表示 3+){“job_class”=>“ActionMailer::DeliveryJob”,“job_id”=>“e0f6afac-7b95-40c7-89d0-d9c63b808198” , "queue_name"=>"mailers", "arguments"=>["UserMailer", "registration_email", "deliver_now", {"_aj_globalid"=>"gid://my-cms/RetailUser/863"}], “语言环境”=>“en”}

为什么我的适配器不喜欢邮寄作业,我该如何解决?

4

0 回答 0