ActiveJobs callbacks with conditionals
Today I learned that ActiveJobs callbacks accept filters, so it's easy to do conditionals like:
class SyncUserJob < ApplicationJob
queue_as :default
after_perform(if: :recursive) do
SyncOrganizationJob.perform_later(user, recursive: true)
SyncRepositoryJob.perform_later(user)
end
attr_accessor :user, :recursive
def perform(access_token, recursive: false)
@access_token = access_token
@recursive = recursive
@user = sync_user
end
def sync_user
...
end
Tweet