/** * @param string $event * @param CM_Jobdistribution_Job_Abstract $job * @param array $defaultJobParams */ public function bindJob($event, CM_Jobdistribution_Job_Abstract $job, array $defaultJobParams = null) { $event = (string) $event; $defaultJobParams = (array) $defaultJobParams; $this->bind($event, function (array $jobParams = null) use($job, $defaultJobParams) { $jobParams = (array) $jobParams; $jobParams = array_merge($defaultJobParams, $jobParams); $job->queue($jobParams); }); }
/** * @keepalive */ public function startWorker() { $worker = new CM_Jobdistribution_JobWorker(); foreach (CM_Jobdistribution_Job_Abstract::getClassChildren() as $jobClassName) { $job = new $jobClassName(); $worker->registerJob($job); } $worker->run(); }
/** * @keepalive */ public function startWorker() { $worker = new CM_Jobdistribution_JobWorker(1000); $worker->setServiceManager($this->getServiceManager()); foreach (CM_Jobdistribution_Job_Abstract::getClassChildren() as $jobClassName) { /** @var CM_Jobdistribution_Job_Abstract $job */ $job = new $jobClassName(); if ($job instanceof CM_Service_ManagerAwareInterface) { /** @var CM_Service_ManagerAwareInterface $job */ $job->setServiceManager($this->getServiceManager()); } $worker->registerJob($job); } $worker->run(); }