require 'active_support/callbacks'
module ActiveJob
module Callbacks
extend ActiveSupport::Concern
include ActiveSupport::Callbacks
included do
define_callbacks :perform
define_callbacks :enqueue
end
module ClassMethods
def before_perform(*filters, &blk)
set_callback(:perform, :before, *filters, &blk)
end
def after_perform(*filters, &blk)
set_callback(:perform, :after, *filters, &blk)
end
def around_perform(*filters, &blk)
set_callback(:perform, :around, *filters, &blk)
end
def before_enqueue(*filters, &blk)
set_callback(:enqueue, :before, *filters, &blk)
end
def after_enqueue(*filters, &blk)
set_callback(:enqueue, :after, *filters, &blk)
end
def around_enqueue(*filters, &blk)
set_callback(:enqueue, :around, *filters, &blk)
end
end
end
end