1 batch_example.module | batch_example_batch_2() |
Batch 2 : Prepare a batch definition that will load all nodes 20 times.
Related topics
File
- modules/
examples/ batch_example/ batch_example.module, line 159 - Hook implementations for the Batch Example module.
Code
function batch_example_batch_2() {
$num_operations = 20;
// Give helpful information about how many nodes are being operated on.
$node_count = db_query('SELECT COUNT(DISTINCT nid) FROM {node}')->fetchField();
backdrop_set_message(
t('There are @node_count nodes so each of the @num operations will require @count HTTP requests.',
array(
'@node_count' => $node_count,
'@num' => $num_operations,
'@count' => ceil($node_count / 5),
)
)
);
$operations = array();
// 20 operations, each one loads all nodes.
for ($i = 0; $i < $num_operations; $i++) {
$operations[] = array(
'batch_example_op_2',
array(t('(Operation @operation)', array('@operation' => $i))),
);
}
$batch = array(
'operations' => $operations,
'finished' => 'batch_example_finished',
// Message displayed while processing the batch. Available placeholders are:
// @current, @remaining, @total, @percentage, @estimate and @elapsed.
// These placeholders are replaced with actual values in _batch_process(),
// using strtr() instead of t(). The values are determined based on the
// number of operations in the 'operations' array (above), NOT by the number
// of nodes that will be processed. In this example, there are 20
// operations, so @total will always be 20, even though there are multiple
// nodes per operation.
// Defaults to t('Completed @current of @total.').
'title' => t('Processing batch 2'),
'init_message' => t('Batch 2 is starting.'),
'progress_message' => t('Processed @current out of @total.'),
'error_message' => t('Batch 2 has encountered an error.'),
);
return $batch;
}