protected Cron::processQueues()
Processes cron queues.
File
- core/lib/Drupal/Core/Cron.php, line 152
Class
- Cron
- The Drupal core Cron service.
Namespace
Drupal\Core
Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | protected function processQueues() { // Grab the defined cron queues. foreach ( $this ->queueManager->getDefinitions() as $queue_name => $info ) { if (isset( $info [ 'cron' ])) { // Make sure every queue exists. There is no harm in trying to recreate // an existing queue. $this ->queueFactory->get( $queue_name )->createQueue(); $queue_worker = $this ->queueManager->createInstance( $queue_name ); $end = time() + (isset( $info [ 'cron' ][ 'time' ]) ? $info [ 'cron' ][ 'time' ] : 15); $queue = $this ->queueFactory->get( $queue_name ); $lease_time = isset( $info [ 'cron' ][ 'time' ]) ? : NULL; while (time() < $end && ( $item = $queue ->claimItem( $lease_time ))) { try { $queue_worker ->processItem( $item ->data); $queue ->deleteItem( $item ); } catch (RequeueException $e ) { // The worker requested the task be immediately requeued. $queue ->releaseItem( $item ); } catch (SuspendQueueException $e ) { // If the worker indicates there is a problem with the whole queue, // release the item and skip to the next queue. $queue ->releaseItem( $item ); watchdog_exception( 'cron' , $e ); // Skip to the next queue. continue 2; } catch (\Exception $e ) { // In case of any other kind of exception, log it and leave the item // in the queue to be processed again later. watchdog_exception( 'cron' , $e ); } } } } } |
Please login to continue.