WP_Background_Process::handle()protectedWC 1.0

Handle

Pass each queue item to the task handler, while remaining within server memory and time limit constraints.

Method of the class: WP_Background_Process{}

No Hooks.

Return

null. Nothing (null).

Usage

// protected - for code of main (parent) or child class
$result = $this->handle();

WP_Background_Process::handle() code WC 9.4.2

protected function handle() {
	$this->lock_process();

	do {
		$batch = $this->get_batch();

		foreach ( $batch->data as $key => $value ) {
			$task = $this->task( $value );

			if ( false !== $task ) {
				$batch->data[ $key ] = $task;
			} else {
				unset( $batch->data[ $key ] );
			}

			if ( $this->time_exceeded() || $this->memory_exceeded() ) {
				// Batch limits reached.
				break;
			}
		}

		// Update or delete current batch.
		if ( ! empty( $batch->data ) ) {
			$this->update( $batch->key, $batch->data );
		} else {
			$this->delete( $batch->key );
		}
	} while ( ! $this->time_exceeded() && ! $this->memory_exceeded() && ! $this->is_queue_empty() );

	$this->unlock_process();

	// Start next batch or complete process.
	if ( ! $this->is_queue_empty() ) {
		$this->dispatch();
	} else {
		$this->complete();
	}

	wp_die();
}