function views_bulk_operations_active_queue_process in Views Bulk Operations (VBO) 7.3
Batch API callback: processes the active queue.
Parameters
$queue_name: The name of the queue to process.
$operation: The object representing the current operation.
$total_rows: The total number of processable items (across all queue items), used to report progress.
See also
views_bulk_operations_queue_item_process()
2 string references to 'views_bulk_operations_active_queue_process'
- views_bulk_operations_drush_execute in ./
views_bulk_operations.drush.inc - Implementation of 'vbo execute' command.
- views_bulk_operations_execute in ./
views_bulk_operations.module - Entry point for executing the chosen operation upon selected rows.
File
- ./
views_bulk_operations.module, line 1042 - Allows operations to be performed on items selected in a view.
Code
function views_bulk_operations_active_queue_process($queue_name, $operation, $total_rows, &$context) {
static $queue;
// It is still possible to hit the time limit.
drupal_set_time_limit(0);
// Prepare the sandbox.
if (!isset($context['sandbox']['progress'])) {
$context['sandbox']['progress'] = 0;
$context['sandbox']['max'] = $total_rows;
$context['results']['log'] = array();
}
// Instantiate the queue.
if (!isset($queue)) {
$queue = DrupalQueue::get($queue_name, TRUE);
}
// Process the queue as long as it has items for us.
$queue_item = $queue
->claimItem(3600);
if ($queue_item) {
// Process the queue item, and update the progress count.
views_bulk_operations_queue_item_process($queue_item->data, $context['results']['log']);
$queue
->deleteItem($queue_item);
// Provide an estimation of the completion level we've reached.
$context['sandbox']['progress'] += count($queue_item->data['arguments'][0]);
$context['finished'] = $context['sandbox']['progress'] / $context['sandbox']['max'];
$context['message'] = t('Processed @current out of @total', array(
'@current' => $context['sandbox']['progress'],
'@total' => $context['sandbox']['max'],
));
}
if (!$queue_item || $context['finished'] === 1) {
// All done. Provide a status message to the user.
$context['results']['log'][] = t('Performed %operation on @items.', array(
'%operation' => $operation
->label(),
'@items' => format_plural($context['sandbox']['progress'], '1 item', '@count items'),
));
}
}