我有一个控制器,我必须将一个对象实例作为参数传递给Sidekiq的Worker类。
我使用call WegWorker.synchronize(@service)
的控制器
class Api::V2::Events::WegSessionsController < Api::V2::Events::ApplicationController
before_action :load_service
def synchronize
@service.keep_cancelled = params[:keep_cancelled].to_b
if @service.valid_connection?
WegWorker.perform_async(@service)
render json: {
status: :ok,
message: @service.message
}, status: :ok
else
render json: {
status: :unprocessable_entity,
errors: @event.errors.full_messages
}, status: :ok
end
end
.. some code with service object instantiation
end
我的worker类
class WegWorker < ::CarrierWave::Workers::ProcessAsset
include Sidekiq::Worker
sidekiq_options retry: false
def perform(service)
service.synchronize
end
end
但是我现在得到的错误是
WARN: NoMethodError: undefined method `synchronize' for "#<WegService:0x0000000013f9abb0>":String
如何在不序列化对象的情况下将其传递给worker?
转载请注明出处:http://www.jubohx.com/article/20230520/1693373.html