Method: QueueLite::Queue#pop
- Defined in:
- lib/queue_lite/queue.rb
#pop ⇒ Object
51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 |
# File 'lib/queue_lite/queue.rb', line 51 def pop row = db.get_first_row(<<~SQL, [LOCKED_STATUS, READY_STATUS]) UPDATE queue SET status = ? WHERE rowid = (SELECT rowid FROM queue WHERE status = ? ORDER BY id LIMIT 1) RETURNING id, data SQL return if row.nil? Task.new(*row) end |