function _batch_test_callback_2

Same name in other branches
  1. 9 core/modules/system/tests/modules/batch_test/batch_test.callbacks.inc \_batch_test_callback_2()
  2. 8.9.x core/modules/system/tests/modules/batch_test/batch_test.callbacks.inc \_batch_test_callback_2()
  3. 10 core/modules/system/tests/modules/batch_test/batch_test.callbacks.inc \_batch_test_callback_2()
  4. 11.x core/modules/system/tests/modules/batch_test/batch_test.callbacks.inc \_batch_test_callback_2()

Implements callback_batch_operation().

Multistep batch operation.

2 string references to '_batch_test_callback_2'
_batch_test_batch_2 in modules/simpletest/tests/batch_test.module
Batch 2: single multistep operation.
_batch_test_batch_3 in modules/simpletest/tests/batch_test.module
Batch 3: both single and multistep operations.

File

modules/simpletest/tests/batch_test.callbacks.inc, line 29

Code

function _batch_test_callback_2($start, $total, $sleep, &$context) {
    // 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 take 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_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.