For those interested, here's the code that pops it off:
Illumintate\Queue\DatabaseQueue.php
public function pop($queue = null)
{
$queue = $this->getQueue($queue);
if ( ! is_null($this->expire))
{
$this->releaseJobsThatHaveBeenReservedTooLong($queue);
}
if ($job = $this->getNextAvailableJob($queue))
{
$this->markJobAsReserved($job->id);
$this->database->commit();
return new DatabaseJob(
$this->container, $this, $job, $queue
);
}
$this->database->commit();
}
/**
* Release the jobs that have been reserved for too long.
*
* @param string $queue
* @return void
*/
protected function releaseJobsThatHaveBeenReservedTooLong($queue)
{
$expired = Carbon::now()->subSeconds($this->expire)->getTimestamp();
$this->database->table($this->table)
->where('queue', $this->getQueue($queue))
->where('reserved', 1)
->where('reserved_at', '<=', $expired)
->update([
'reserved' => 0,
'reserved_at' => null,
'attempts' => new Expression('attempts + 1')
]);
}