我有一个我写的 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”}
为什么我的适配器不喜欢邮寄作业,我该如何解决?