Loading core/lib/Drupal/Core/Annotation/QueueWorker.php +3 −1 Original line number Diff line number Diff line Loading @@ -52,13 +52,15 @@ class QueueWorker extends Plugin { public $title; /** * An associative array containing an optional key. * An associative array containing optional keys. * * This property is optional and it does not need to be declared. * * Available keys: * - time (optional): How much time Drupal cron should spend on calling this * worker in seconds. Defaults to 15. * - lease_time: (optional) How long the lease is for a queue item when * called from cron in seconds. Defaults to 30. * * @var array */ Loading core/lib/Drupal/Core/Cron.php +3 −3 Original line number Diff line number Diff line Loading @@ -174,10 +174,10 @@ protected function processQueues() { $this->queueFactory->get($queue_name)->createQueue(); $queue_worker = $this->queueManager->createInstance($queue_name); $end = time() + ($info['cron']['time'] ?? 15); $end = $this->time->getCurrentTime() + $info['cron']['time'] ?? static::DEFAULT_QUEUE_CRON_TIME; $queue = $this->queueFactory->get($queue_name); $lease_time = isset($info['cron']['time']) ?: NULL; while (time() < $end && ($item = $queue->claimItem($lease_time))) { $lease_time = $info['cron']['lease_time'] ?? static::DEFAULT_QUEUE_CRON_LEASE_TIME; while ($this->time->getCurrentTime() < $end && ($item = $queue->claimItem($lease_time))) { try { $queue_worker->processItem($item->data); $queue->deleteItem($item); Loading core/lib/Drupal/Core/CronInterface.php +10 −0 Original line number Diff line number Diff line Loading @@ -9,6 +9,16 @@ */ interface CronInterface { /** * The default time cron should execute each queue in seconds. */ public const DEFAULT_QUEUE_CRON_TIME = 15; /** * The default lease time a queue item should get when called from cron. */ public const DEFAULT_QUEUE_CRON_LEASE_TIME = 30; /** * Executes a cron run. * Loading core/lib/Drupal/Core/Queue/DatabaseQueue.php +2 −2 Original line number Diff line number Diff line Loading @@ -241,7 +241,7 @@ public function garbageCollection() { try { // Clean up the queue for failed batches. $this->connection->delete(static::TABLE_NAME) ->condition('created', REQUEST_TIME - 864000, '<') ->condition('created', \Drupal::time()->getRequestTime() - 864000, '<') ->condition('name', 'drupal_batch:%', 'LIKE') ->execute(); Loading @@ -252,7 +252,7 @@ public function garbageCollection() { 'expire' => 0, ]) ->condition('expire', 0, '<>') ->condition('expire', REQUEST_TIME, '<') ->condition('expire', \Drupal::time()->getRequestTime(), '<') ->execute(); } catch (\Exception $e) { Loading core/lib/Drupal/Core/Queue/QueueWorkerManager.php +0 −14 Original line number Diff line number Diff line Loading @@ -34,20 +34,6 @@ public function __construct(\Traversable $namespaces, CacheBackendInterface $cac $this->alterInfo('queue_info'); } /** * {@inheritdoc} */ public function processDefinition(&$definition, $plugin_id) { parent::processDefinition($definition, $plugin_id); // Assign a default time if a cron is specified. if (isset($definition['cron'])) { $definition['cron'] += [ 'time' => 15, ]; } } /** * {@inheritdoc} * Loading Loading
core/lib/Drupal/Core/Annotation/QueueWorker.php +3 −1 Original line number Diff line number Diff line Loading @@ -52,13 +52,15 @@ class QueueWorker extends Plugin { public $title; /** * An associative array containing an optional key. * An associative array containing optional keys. * * This property is optional and it does not need to be declared. * * Available keys: * - time (optional): How much time Drupal cron should spend on calling this * worker in seconds. Defaults to 15. * - lease_time: (optional) How long the lease is for a queue item when * called from cron in seconds. Defaults to 30. * * @var array */ Loading
core/lib/Drupal/Core/Cron.php +3 −3 Original line number Diff line number Diff line Loading @@ -174,10 +174,10 @@ protected function processQueues() { $this->queueFactory->get($queue_name)->createQueue(); $queue_worker = $this->queueManager->createInstance($queue_name); $end = time() + ($info['cron']['time'] ?? 15); $end = $this->time->getCurrentTime() + $info['cron']['time'] ?? static::DEFAULT_QUEUE_CRON_TIME; $queue = $this->queueFactory->get($queue_name); $lease_time = isset($info['cron']['time']) ?: NULL; while (time() < $end && ($item = $queue->claimItem($lease_time))) { $lease_time = $info['cron']['lease_time'] ?? static::DEFAULT_QUEUE_CRON_LEASE_TIME; while ($this->time->getCurrentTime() < $end && ($item = $queue->claimItem($lease_time))) { try { $queue_worker->processItem($item->data); $queue->deleteItem($item); Loading
core/lib/Drupal/Core/CronInterface.php +10 −0 Original line number Diff line number Diff line Loading @@ -9,6 +9,16 @@ */ interface CronInterface { /** * The default time cron should execute each queue in seconds. */ public const DEFAULT_QUEUE_CRON_TIME = 15; /** * The default lease time a queue item should get when called from cron. */ public const DEFAULT_QUEUE_CRON_LEASE_TIME = 30; /** * Executes a cron run. * Loading
core/lib/Drupal/Core/Queue/DatabaseQueue.php +2 −2 Original line number Diff line number Diff line Loading @@ -241,7 +241,7 @@ public function garbageCollection() { try { // Clean up the queue for failed batches. $this->connection->delete(static::TABLE_NAME) ->condition('created', REQUEST_TIME - 864000, '<') ->condition('created', \Drupal::time()->getRequestTime() - 864000, '<') ->condition('name', 'drupal_batch:%', 'LIKE') ->execute(); Loading @@ -252,7 +252,7 @@ public function garbageCollection() { 'expire' => 0, ]) ->condition('expire', 0, '<>') ->condition('expire', REQUEST_TIME, '<') ->condition('expire', \Drupal::time()->getRequestTime(), '<') ->execute(); } catch (\Exception $e) { Loading
core/lib/Drupal/Core/Queue/QueueWorkerManager.php +0 −14 Original line number Diff line number Diff line Loading @@ -34,20 +34,6 @@ public function __construct(\Traversable $namespaces, CacheBackendInterface $cac $this->alterInfo('queue_info'); } /** * {@inheritdoc} */ public function processDefinition(&$definition, $plugin_id) { parent::processDefinition($definition, $plugin_id); // Assign a default time if a cron is specified. if (isset($definition['cron'])) { $definition['cron'] += [ 'time' => 15, ]; } } /** * {@inheritdoc} * Loading