diff --git a/queue_ui.module b/queue_ui.module index c69e735..a2536b8 100644 --- a/queue_ui.module +++ b/queue_ui.module @@ -305,8 +305,16 @@ function queue_ui_cron_queue_batch_process($queue_name, $cron_queue_info, &$cont $end = time() + (isset($cron_queue_info['time']) ? $cron_queue_info['time'] : 15); while (time() < $end && ($item = $queue->claimItem())) { - $function($item->data); - $queue->deleteItem($item); + try { + $function($item->data); + $queue->deleteItem($item); + } + catch (Exception $e) { + // In case of exception log it and leave the item in the queue + // to be processed again later. + drupal_set_message($e->getMessage(), 'error', FALSE); + watchdog_exception('queue_ui', $e->getMessage(), NULL, WATCHDOG_ERROR); + } $context['sandbox']['progress']++; }