/** * Enqueues a batch of similar jobs * * @param string $worker Worker class to enqueue (In CakePHP format) * @param array $jobsToEnqueue Array of jobs to enqueue. Can either be a simple array for the payload, or contain two keys (_payload, and _options) * @param array $options Default options for all jobs. Can be overridden with the `_options` key * @return array */ public function enqueueBatch($worker, array $jobsToEnqueue, array $options = []) { $jobs = []; foreach ($jobsToEnqueue as $jobInfo) { $jobPayload = $jobInfo; $jobOptions = $options; if (isset($jobInfo['_payload'])) { $jobPayload = $jobInfo['_payload']; } if (isset($jobInfo['_options'])) { $jobOptions = $jobInfo['_options'] + $options; } $job = new Job(); $job->setWorker($worker)->setPayload($jobPayload)->setData($jobOptions); $jobs[] = $job; } return JobManager::instance()->enqueueBatch($jobs); }