This example demonstrates how a module can use the Batch API.

Batches allow heavy processing to be spread out over several page requests, ensuring that the processing does not get interrupted because of a PHP timeout, while allowing the user to receive feedback on the progress of the ongoing operations. It also can prevent out of memory situations.

The .install file also shows how the Batch API can be used to handle long-running hook_update_N() functions.

Two harmless batches are defined:

  • batch 1: Load the node with the lowest nid 100 times.
  • batch 2: Load all nodes, 20 times and uses a progressive op, loading nodes by groups of 5.

See also

Batch operations

Parent topics


modules/examples/batch_example/batch_example.module, line 7
Hook implementations for the Batch Example module.


Namesort descending Location Description
batch_example_batch_1 modules/examples/batch_example/batch_example.module Batch 1 definition: Load the node with the lowest nid 1000 times.
batch_example_batch_2 modules/examples/batch_example/batch_example.module Batch 2 : Prepare a batch definition that will load all nodes 20 times.
batch_example_finished modules/examples/batch_example/batch_example.module Batch 'finished' callback used by both batch 1 and batch 2.
batch_example_lowest_nid modules/examples/batch_example/batch_example.module Utility function - simply queries and loads the lowest nid.
batch_example_menu modules/examples/batch_example/batch_example.module Implements hook_menu().
batch_example_op_1 modules/examples/batch_example/batch_example.module Batch operation for batch 1: load a node.
batch_example_op_2 modules/examples/batch_example/batch_example.module Batch operation for batch 2 : load all nodes, 5 by five.
batch_example_simple_form modules/examples/batch_example/batch_example.module Form builder function to allow choice of which batch to run.
batch_example_simple_form_submit modules/examples/batch_example/batch_example.module Submit handler.
batch_example_update_1100 modules/examples/batch_example/batch_example.install Example of batch-driven update function.
_batch_example_get_http_requests modules/examples/batch_example/batch_example.module Utility function to count the HTTP requests in a session variable.
_batch_example_update_http_requests modules/examples/batch_example/batch_example.module Utility function to increment HTTP requests in a session variable.


Namesort descending Location Description
BatchExampleTestCase modules/examples/batch_example/tests/batch_example.test Functional tests for the Batch Example module.