ruby-on-rails – 如何将current_user传递给Sidekiq的Worker
我试图将current_user或User.find(1)传递给工作模块,但在sidekiq的仪表板中获取错误(localhost:3000 / sidekiq / retries):
注意:我的关系很好,即: u = User.find(1) u.supports #=> [] supports_controller.rb: def create @user = current_user ProjectsWorker.perform_async(@user) ... end 应用程序/工人/ projects_worker.rb: class ProjectsWorker include Sidekiq::Worker def perform(user) u = user @support = u.supports.build(support_params) end end 重新启动我的sidekiq服务器没有任何区别.这是在我的开发机器上. 解决方法
从
Sidekiq documentation :
传递id而不是object: def create ProjectsWorker.perform_async(current_user.id) end 工人: class ProjectsWorker include Sidekiq::Worker def perform(user_id) u = User.find(user_id) @support = u.supports.build(support_params) end end (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |