File: /var/www/html/ielts-store/wp-content/plugins/automatewoo/includes/Jobs/JobService.php
<?php
namespace AutomateWoo\Jobs;
use AutomateWoo\Exceptions\InvalidArgument;
use AutomateWoo\Exceptions\InvalidClass;
use AutomateWoo\Traits\ArrayValidator;
defined( 'ABSPATH' ) || exit;
/**
* JobService class.
*
* @version 5.1.0
*/
class JobService {
use ArrayValidator;
/**
* @var JobRegistryInterface
*/
protected $registry;
/**
* JobService constructor.
*
* @param JobRegistryInterface $registry
*/
public function __construct( JobRegistryInterface $registry ) {
$this->registry = $registry;
}
/**
* Initialize all jobs.
*
* @throws InvalidClass|InvalidArgument When there is an error loading jobs.
*/
public function init_jobs() {
foreach ( $this->registry->list() as $job ) {
$job->init();
if ( $job instanceof StartOnHookInterface ) {
add_action( $job->get_start_hook(), [ $job, 'start' ], 10, 0 );
}
}
}
/**
* Get a job by name.
*
* @param string $name The job name.
*
* @return JobInterface
*
* @throws JobException If the job is not found.
* @throws InvalidClass|InvalidArgument When there is an invalid job class.
*/
public function get_job( string $name ): JobInterface {
return $this->registry->get( $name );
}
}