ActionScheduler_QueueRunner::do_batch
Process a batch of actions pending in the queue.
Actions are processed by claiming a set of pending actions then processing each one until either the batch size is completed, or memory or time limits are reached, defined by @see $this->batch_limits_exceeded().
Method of the class: ActionScheduler_QueueRunner{}
No Hooks.
Returns
Int. The number of actions processed.
Usage
// protected - for code of main (parent) or child class $result = $this->do_batch( $size, $context );
- $size(int)
- The maximum number of actions to process in the batch.
Default: 100 - $context(string)
- Optional identifier for the context in which this action is being processed, e.g. 'WP CLI' or 'WP Cron' Generally, this should be capitalised and not localised as it's a proper noun.
Default: ''
ActionScheduler_QueueRunner::do_batch() ActionScheduler QueueRunner::do batch code WC 10.3.3
protected function do_batch( $size = 100, $context = '' ) {
$claim = $this->store->stake_claim( $size );
$this->monitor->attach( $claim );
$processed_actions = 0;
foreach ( $claim->get_actions() as $action_id ) {
// bail if we lost the claim.
if ( ! in_array( $action_id, $this->store->find_actions_by_claim_id( $claim->get_id() ), true ) ) {
break;
}
$this->process_action( $action_id, $context );
$processed_actions++;
if ( $this->batch_limits_exceeded( $processed_actions + $this->processed_actions_count ) ) {
break;
}
}
$this->store->release_claim( $claim );
$this->monitor->detach();
$this->clear_caches();
return $processed_actions;
}