$queue->
deleteItem($item);
} catch (DelayedRequeueException
$e) { // The worker requested the task not be immediately re-queued.
// - If the queue doesn't support ::delayItem(), we should leave the
// item's current expiry time alone.
// - If the queue does support ::delayItem(), we should allow the
// queue to update the item's expiry using the requested delay.
if ($queue instanceof DelayableQueueInterface
) { // This queue can handle a custom delay; use the duration provided
// by the exception.
$queue->
delayItem($item,
$e->
getDelay());
} } catch (RequeueException
) { // The worker requested the task be immediately requeued.
$queue->
releaseItem($item);
} catch (SuspendQueueException
$e) { // If the worker indicates the whole queue should be skipped, release
// the item and go to the next queue.
$queue->
releaseItem($item);