blob: fd1c0f6286f0f8d6c48012f3373f17242ba22533 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
# frozen_string_literal: true
module ActiveJob
module QueuePriority
extend ActiveSupport::Concern
# Includes the ability to override the default queue priority.
module ClassMethods
mattr_accessor :default_priority
# Specifies the priority of the queue to create the job with.
#
# class PublishToFeedJob < ActiveJob::Base
# queue_with_priority 50
#
# def perform(post)
# post.to_feed!
# end
# end
#
# Specify either an argument or a block.
def queue_with_priority(priority = nil, &block)
if block_given?
self.priority = block
else
self.priority = priority
end
end
end
included do
class_attribute :priority, instance_accessor: false, default: default_priority
end
# Returns the priority that the job will be created with
def priority
if @priority.is_a?(Proc)
@priority = instance_exec(&@priority)
end
@priority
end
end
end
|