Skip to content

Commit 5bd03cb

Browse files
committed
Hack to support resque-priority_enqueue: https://github.com/coupa/resque-priority_enqueue
1 parent 8526c7c commit 5bd03cb

1 file changed

Lines changed: 19 additions & 0 deletions

File tree

‎lib/resque_ext/job.rb‎

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,25 @@ def destroy_solo(queue, klass, *args)
3636
alias_method :reserve, :reserve_solo
3737
alias_method :destroy_without_solo, :destroy
3838
alias_method :destroy, :destroy_solo
39+
40+
# Hack to support resque-priority_enqueue: https://github.com/coupa/resque-priority_enqueue
41+
def priority_create_solo(queue, klass, *args)
42+
item = { class: klass.to_s, args: args }
43+
if Resque.inline? || !ResqueSolo::Queue.is_unique?(item)
44+
return priority_create_without_solo(queue, klass, *args)
45+
end
46+
return "EXISTED" if ResqueSolo::Queue.queued?(queue, item)
47+
priority_create_return_value = false
48+
# redis transaction block
49+
Resque.redis.multi do
50+
priority_create_return_value = priority_create_without_solo(queue, klass, *args)
51+
ResqueSolo::Queue.mark_queued(queue, item)
52+
end
53+
priority_create_return_value
54+
end
55+
56+
alias_method :priority_create_without_solo, :priority_create
57+
alias_method :priority_create, :priority_create_solo
3958
end
4059
end
4160
end

0 commit comments

Comments
 (0)