Source of file FluentQueuedJobService.php
Size: 1,242 Bytes - Last Modified: 2021-12-23T10:57:32+00:00
/var/www/docs.ssmods.com/process/src/src/Services/FluentQueuedJobService.php
123456789101112131415161718192021222324252627282930313233343536 | <?php namespace WebbuildersGroup\FluentWorkflow\Services; use SilverStripe\ORM\DataObject; use Symbiote\QueuedJobs\DataObjects\QueuedJobDescriptor; use Symbiote\QueuedJobs\Services\QueuedJob; use Symbiote\QueuedJobs\Services\QueuedJobService; use TractorCow\Fluent\State\FluentState; use Exception; class FluentQueuedJobService extends QueuedJobService { public function queueJob(QueuedJob $job, $startAfter = null, $userId = null, $queueName = null) { $job->__set('Locale', FluentState::singleton()->getLocale()); return parent::queueJob($job, $startAfter, $userId, $queueName); } public function runJob($jobId) { // first retrieve the descriptor $jobDescriptor = DataObject::get_by_id( QueuedJobDescriptor::class, (int)$jobId ); if (!$jobDescriptor) { throw new Exception("$jobId is invalid"); } return FluentState::singleton()->withState(function ($state) use ($jobDescriptor) { $data = unserialize($jobDescriptor->SavedJobData); $state->setLocale((is_string($data->Locale) ? $data->Locale : $data->Locale->Locale)); return parent::runJob($jobDescriptor->ID); }); } } |