如何从控制器获取参数到 Sidekiq worker (rails)
How to get params from controller into Sidekiq worker (rails)
我在我的应用程序中有某些操作,当它们发生时,邮件会被发送出去。
我的操作和邮件程序以及一切正常。但是,我正在尝试将这项工作交给 sidekiq 工作人员。
我在应用程序中的工作人员工作正常,但我在通过此工作人员让我的邮件程序工作时遇到问题。
这是我的工人
class SendMailerWorker
include Sidekiq::Worker
sidekiq_options retry: false
def perform
@candidate = Candidate.find(params[:id])
@candidate.destroy
TestMailer.send_request()
end
end
这是我的控制器
def destroy
SendMailerWorker.perform_async
end
然而这个设置不起作用,我收到以下错误:NameError: undefined local variable or method `params'
所以问题是,我如何访问 worker 中的参数?
只需将您的参数从控制器传递给 sidekiq worker
class SendMailerWorker
include Sidekiq::Worker
sidekiq_options retry: false
def perform(candidate_id)
@candidate = Candidate.find(candidate_id)
@candidate.destroy
TestMailer.send_request()
end
end
def destroy
SendMailerWorker.perform_async(params[:id])
end
我在我的应用程序中有某些操作,当它们发生时,邮件会被发送出去。
我的操作和邮件程序以及一切正常。但是,我正在尝试将这项工作交给 sidekiq 工作人员。
我在应用程序中的工作人员工作正常,但我在通过此工作人员让我的邮件程序工作时遇到问题。
这是我的工人
class SendMailerWorker
include Sidekiq::Worker
sidekiq_options retry: false
def perform
@candidate = Candidate.find(params[:id])
@candidate.destroy
TestMailer.send_request()
end
end
这是我的控制器
def destroy
SendMailerWorker.perform_async
end
然而这个设置不起作用,我收到以下错误:NameError: undefined local variable or method `params'
所以问题是,我如何访问 worker 中的参数?
只需将您的参数从控制器传递给 sidekiq worker
class SendMailerWorker
include Sidekiq::Worker
sidekiq_options retry: false
def perform(candidate_id)
@candidate = Candidate.find(candidate_id)
@candidate.destroy
TestMailer.send_request()
end
end
def destroy
SendMailerWorker.perform_async(params[:id])
end