function BatchTestCallbacks::callback2
Implements callback_batch_operation().
Performs a multistep batch operation.
File
-
core/
modules/ system/ tests/ modules/ batch_test/ src/ BatchTestCallbacks.php, line 71
Class
- BatchTestCallbacks
- Batch callbacks for testing batches.
Namespace
Drupal\batch_testCode
public function callback2($start, $total, $sleep, &$context) : void {
$batch_test_helper = new BatchTestHelper();
// Initialize context with progress information.
if (!isset($context['sandbox']['current'])) {
$context['sandbox']['current'] = $start;
$context['sandbox']['count'] = 0;
}
// Process by groups of 5 (arbitrary value).
$limit = 5;
for ($i = 0; $i < $limit && $context['sandbox']['count'] < $total; $i++) {
// No-op, but ensure the batch takes a couple iterations.
// Batch needs time to run for the test, so sleep a bit.
usleep($sleep);
// Track execution, and store some result for post-processing in the
// 'finished' callback.
$id = $context['sandbox']['current'] + $i;
$batch_test_helper->stack("op 2 id {$id}");
$context['results'][2][] = $id;
// Update progress information.
$context['sandbox']['count']++;
}
$context['sandbox']['current'] += $i;
// Inform batch engine about progress.
if ($context['sandbox']['count'] != $total) {
$context['finished'] = $context['sandbox']['count'] / $total;
}
}
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.