diff --git a/modules/system/system.queue.inc b/modules/system/system.queue.inc index be0c31e97ec8092671d07cec2c50f2c2ea759a5c..5174a0a6521a3c287c3233933bd4172bbdd63848 100644 --- a/modules/system/system.queue.inc +++ b/modules/system/system.queue.inc @@ -135,6 +135,15 @@ public function claimItem($lease_time = 3600); */ public function deleteItem($item); + /** + * Release an item that the worker could not process, so another + * worker can come in and process it before the timeout expires. + * + * @param $item + * @return boolean + */ + public function releaseItem($item); + /** * Create a queue. * @@ -216,6 +225,15 @@ public function claimItem($lease_time = 30) { } } + public function releaseItem($item) { + $update = db_update('queue') + ->fields(array( + 'expire' => 0, + )) + ->condition('item_id', $item->item_id); + return $update->execute(); + } + public function deleteItem($item) { db_delete('queue') ->condition('item_id', $item->item_id)