Source of file QueuedJobHandler.php
Size: 1,907 Bytes - Last Modified: 2021-12-23T10:50:08+00:00
/var/www/docs.ssmods.com/process/src/src/Services/QueuedJobHandler.php
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 | <?php namespace Symbiote\QueuedJobs\Services; use Monolog\Formatter\LineFormatter; use Monolog\Handler\AbstractProcessingHandler; use SilverStripe\Core\Injector\Injectable; use Symbiote\QueuedJobs\DataObjects\QueuedJobDescriptor; /** * Writes log output to a job descriptor */ class QueuedJobHandler extends AbstractProcessingHandler { use Injectable; /** @var QueuedJob */ protected $job; /** @var QueuedJobDescriptor */ protected $jobDescriptor; public function __construct(QueuedJob $job, QueuedJobDescriptor $jobDescriptor) { parent::__construct(); $this->job = $job; $this->jobDescriptor = $jobDescriptor; } /** * @return QueuedJob */ public function getJob() { return $this->job; } /** * @return QueuedJobDescriptor */ public function getJobDescriptor() { return $this->jobDescriptor; } /** * Writes the record down to the log of the implementing handler * * @param array $record * @return void */ protected function write(array $record) { $this->handleBatch([$record]); } public function handleBatch(array $records) { foreach ($records as $i => $record) { $records[$i] = $this->processRecord($records[$i]); $records[$i]['formatted'] = $this->getFormatter()->format($records[$i]); $this->job->addMessage($records[$i]['formatted'], $records[$i]['level_name'], $records[$i]['datetime']); }; $this->jobDescriptor->SavedJobMessages = serialize($this->job->getJobData()->messages); $this->jobDescriptor->write(); } /** * Ensure that exception context is retained. Similar logic to SyslogHandler. */ protected function getDefaultFormatter() { return new LineFormatter('%message% %context% %extra%'); } } |