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
Parent topics
File
- modules/
examples/ batch_example/ batch_example.module, line 7 - Hook implementations for the Batch Example module.
Functions
Name | Location | Description |
---|---|---|
batch_example_batch_1 |
modules/ |
Batch 1 definition: Load the node with the lowest nid 1000 times. |
batch_example_batch_2 |
modules/ |
Batch 2 : Prepare a batch definition that will load all nodes 20 times. |
batch_example_finished |
modules/ |
Batch 'finished' callback used by both batch 1 and batch 2. |
batch_example_lowest_nid |
modules/ |
Utility function - simply queries and loads the lowest nid. |
batch_example_menu |
modules/ |
Implements hook_menu(). |
batch_example_op_1 |
modules/ |
Batch operation for batch 1: load a node. |
batch_example_op_2 |
modules/ |
Batch operation for batch 2 : load all nodes, 5 by five. |
batch_example_simple_form |
modules/ |
Form builder function to allow choice of which batch to run. |
batch_example_simple_form_submit |
modules/ |
Submit handler. |
batch_example_update_1100 |
modules/ |
Example of batch-driven update function. |
_batch_example_get_http_requests |
modules/ |
Utility function to count the HTTP requests in a session variable. |
_batch_example_update_http_requests |
modules/ |
Utility function to increment HTTP requests in a session variable. |
Classes
Name | Location | Description |
---|---|---|
BatchExampleTestCase |
modules/ |
Functional tests for the Batch Example module. |