Method: Worker::Queue#dequeue
- Defined in:
- lib/worker/queue.rb
#dequeue ⇒ Object
locks a set of jobs for this worker
63 64 65 66 67 68 69 70 71 72 73 74 75 |
# File 'lib/worker/queue.rb', line 63 def dequeue query = db[:worker_jobs] .where( '`run_at` < ? AND `locked_by` IS NULL AND `id` in (SELECT `id` FROM `worker_jobs` ORDER BY `priority` DESC LIMIT ?)', Time.now, jobs_per_worker) if queue_name query = query.where(queue: queue_name) end query.update(locked_by: id, locked_at: Time.now) db[:worker_jobs].where(locked_by: id) end |