isComplete = false; $this->messages = array(); } /** * @return SearchLogFactory */ protected function getLoggerFactory() { return Injector::inst()->get(SearchLogFactory::class); } /** * Gets a logger for this job * * @return LoggerInterface */ protected function getLogger() { if ($this->logger) { return $this->logger; } // Set logger for this job $this->logger = $this ->getLoggerFactory() ->getQueuedJobLogger($this); return $this->logger; } /** * Assign custom logger for this job * * @param LoggerInterface $logger */ public function setLogger($logger) { $this->logger = $logger; } public function getJobData() { $data = new stdClass(); // Standard fields $data->totalSteps = 1; $data->currentStep = $this->isComplete ? 0 : 1; $data->isComplete = $this->isComplete; $data->messages = $this->messages; // Custom data $data->jobData = new stdClass(); return $data; } public function setJobData($totalSteps, $currentStep, $isComplete, $jobData, $messages) { $this->isComplete = $isComplete; $this->messages = $messages; } /** * Get the reindex handler * * @return SolrReindexHandler */ protected function getHandler() { return Injector::inst()->get(SolrReindexHandler::class); } public function jobFinished() { return $this->isComplete; } public function prepareForRestart() { // NOOP } public function setup() { // NOOP } public function afterComplete() { // NOOP } public function getJobType() { return QueuedJob::QUEUED; } public function addMessage($message) { $this->messages[] = $message; } }