File tree Expand file tree Collapse file tree 1 file changed +8
-12
lines changed Expand file tree Collapse file tree 1 file changed +8
-12
lines changed Original file line number Diff line number Diff line change @@ -193,19 +193,15 @@ def perform(job)
193
193
# Attempts to grab a job off one of the provided queues. Returns
194
194
# nil if no job can be found.
195
195
def reserve
196
- queues . each do | queue |
197
- log! "Checking #{ queue } "
198
- if job = Resque . reserve ( queue )
199
- log! "Found job on #{ queue } "
200
- return job
201
- end
202
- end
203
-
196
+ multi_queue = MultiQueue . new (
197
+ queues . map { | queue | Queue . new ( queue , Resque . redis , Resque . coder ) } ,
198
+ Resque . redis )
199
+
200
+ queue , job = multi_queue . pop ( true )
201
+ log! "Found job on #{ queue } "
202
+ return Job . new ( queue . name , job )
203
+ rescue ThreadError
204
204
nil
205
- rescue Exception => e
206
- log "Error reserving job: #{ e . inspect } "
207
- log e . backtrace . join ( "\n " )
208
- raise e
209
205
end
210
206
211
207
# Returns a list of queues to use when searching for a job.
You can’t perform that action at this time.
0 commit comments