tableName(QueuedJobDescriptor::class)), Convert::raw2sql(QueuedJob::STATUS_CANCELLED), implode("','", Convert::raw2sql($clearable)), Convert::raw2sql($type) )); return DB::affected_rows(); } public function triggerReindex(LoggerInterface $logger, $batchSize, $taskName, $classes = null) { // Cancel existing jobs $queues = $this->cancelExistingJobs(SolrReindexQueuedJob::class); $groups = $this->cancelExistingJobs(SolrReindexGroupQueuedJob::class); $logger->info("Cancelled {$queues} re-index tasks and {$groups} re-index groups"); // Although this class is used as a service (singleton) it may also be instantiated // as a queuedjob $job = Injector::inst()->create(SolrReindexQueuedJob::class, $batchSize, $taskName, $classes); $this ->getQueuedJobService() ->queueJob($job); $title = $job->getTitle(); $logger->info("Queued {$title}"); } protected function processGroup( LoggerInterface $logger, SolrIndex $indexInstance, $state, $class, $groups, $group, $taskName ) { // Trigger another job for this group $job = Injector::inst()->create( SolrReindexGroupQueuedJob::class, get_class($indexInstance), $state, $class, $groups, $group ); $this ->getQueuedJobService() ->queueJob($job); $title = $job->getTitle(); $logger->info("Queued {$title}"); } public function runGroup( LoggerInterface $logger, SolrIndex $indexInstance, $state, $class, $groups, $group ) { parent::runGroup($logger, $indexInstance, $state, $class, $groups, $group); // After any changes have been made, mark all indexes as dirty for commit // see http://stackoverflow.com/questions/7512945/how-to-fix-exceeded-limit-of-maxwarmingsearchers $logger->info("Queuing commit on all changes"); SearchUpdateCommitJobProcessor::queue(); } }