Download the PHP package wp-media/background-processing without Composer
On this page you can find all versions of the php package wp-media/background-processing. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download wp-media/background-processing
More information about wp-media/background-processing
Files in wp-media/background-processing
Package background-processing
Short Description Async & Background Tasks Processing
License GPL-2.0+
Homepage https://github.com/wp-media/background-processing
Informations about the package background-processing
WP Background Processing
WP Background Processing can be used to fire off non-blocking asynchronous requests or as a background processing tool, allowing you to queue tasks.
Inspired by TechCrunch WP Asynchronous Tasks and DeliciousBrains.
Requires PHP 5.2+
Async Request
Async requests are useful for pushing slow one-off tasks such as sending emails to a background process. Once the request has been dispatched it will process in the background instantly.
Extend the WP_Async_Request
class:
protected $action
Should be set to a unique name.
protected function handle()
Should contain any logic to perform during the non-blocking request. The data passed to the request will be accessible via $_POST
.
Dispatching Requests
Instantiate your request:
$this->example_request = new WP_Example_Request();
Add data to the request if required:
$this->example_request->data( array( 'value1' => $value1, 'value2' => $value2 ) );
Fire off the request:
$this->example_request->dispatch();
Chaining is also supported:
$this->example_request->data( array( 'data' => $data ) )->dispatch();
Background Process
Background processes work in a similar fashion to async requests but they allow you to queue tasks. Items pushed onto the queue will be processed in the background once the queue has been dispatched. Queues will also scale based on available server resources, so higher end servers will process more items per batch. Once a batch has completed the next batch will start instantly.
Health checks run by default every 5 minutes to ensure the queue is running when queued items exist. If the queue has failed it will be restarted.
Queues work on a first in first out basis, which allows additional items to be pushed to the queue even if it’s already processing.
Extend the WP_Background_Process
class:
protected $action
Should be set to a unique name.
protected function task( $item )
Should contain any logic to perform on the queued item. Return false
to remove the item from the queue or return $item
to push it back onto the queue for further processing. If the item has been modified and is pushed back onto the queue the current state will be saved before the batch is exited.
protected function complete()
Optionally contain any logic to perform once the queue has completed.
Dispatching Processes
Instantiate your process:
$this->example_process = new WP_Example_Process();
Push items to the queue:
Save and dispatch the queue:
$this->example_process->save()->dispatch();
BasicAuth
If your site is behind BasicAuth, both async requests and background processes will fail to complete. This is because WP Background Processing relies on the WordPress HTTP API, which requires you to attach your BasicAuth credentials to requests. The easiest way to do this is using the following filter: