diff --git a/src/QueueUIBatch.php b/src/QueueUIBatch.php index 97a12c65bc6efe53ac280d012c74c66e83dd4a2c..a2e43d0cfd13cd56b01481627f0143bb0c0f4f5b 100644 --- a/src/QueueUIBatch.php +++ b/src/QueueUIBatch.php @@ -42,12 +42,19 @@ class QueueUIBatch { $queue_worker = $queue_manager->createInstance($queue_name); $queue = $queue_factory->get($queue_name); + $num_of_items = $queue->numberOfItems(); + if (!array_key_exists('num_of_total_items', $context['sandbox']) + || $context['sandbox']['num_of_total_items'] < $num_of_items + ) { + $context['sandbox']['num_of_total_items'] = $num_of_items; + } + $context['finished'] = 0; $context['results']['queue_name'] = $info['title']; $title = t('Processing queue %name: %count items remaining', [ '%name' => $info['title'], - '%count' => $queue->numberOfItems(), + '%count' => $num_of_items, ]); try { @@ -61,8 +68,11 @@ class QueueUIBatch { $queue_worker->processItem($item->data); $queue->deleteItem($item); + $num_of_items = $queue->numberOfItems(); + // Update context $context['results']['processed'][] = $item->item_id; + $context['finished'] = ($context['sandbox']['num_of_total_items'] - $num_of_items) / $context['sandbox']['num_of_total_items']; } else { // If we cannot claim an item we must be done processing this queue. @@ -137,4 +147,4 @@ class QueueUIBatch { ); } } -} \ No newline at end of file +}