Created
December 8, 2018 08:26
-
-
Save dpaluy/f66d0362258d4f99c9e7d7ea0f3d9960 to your computer and use it in GitHub Desktop.
Passing current_user to Sidekiq
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| module SidekiqMediator | |
| def perform_async(klass, *args) | |
| args.push(current_user.login) | |
| klass.send(:perform_async, *args) | |
| end | |
| end | |
| # EXAMPLE | |
| class DeliveryController < ApplicationController | |
| include SidekiqMediator | |
| def update | |
| # update attributes | |
| perform_async(DeliveryUpdateWorker, params[:delivery]) | |
| # render delivery | |
| end | |
| end | |
| class DeliveryDeleteWorker | |
| include Sidekiq::Worker | |
| def perform(delivery, user_login) | |
| user = User.find_by(login: user_login) | |
| ActivityGenerationService.new(delivery, user) if user | |
| end | |
| end |
Author
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
reference: https://blog.bigbinary.com/2018/12/05/passing-current-user-by-default-in-sidekiq.html