Exemplo n.º 1
0
 /**
  * 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);
 }