JobCheckStatus.php in TMGMT Extension Suite 8
File
src/Plugin/QueueWorker/JobCheckStatus.php
View source
<?php
namespace Drupal\tmgmt_extension_suit\Plugin\QueueWorker;
use Drupal\Core\Plugin\ContainerFactoryPluginInterface;
use Drupal\Core\Queue\QueueWorkerBase;
use Drupal\tmgmt_extension_suit\ExtendedTranslatorPluginInterface;
use Drupal\tmgmt_extension_suit\Utils\UniqueQueueItem;
use Symfony\Component\DependencyInjection\ContainerInterface;
use Psr\Log\LoggerInterface;
class JobCheckStatus extends QueueWorkerBase implements ContainerFactoryPluginInterface {
protected $uniqueQueueItem;
protected $logger;
protected $config;
public function __construct(array $configuration, $plugin_id, array $plugin_definition, UniqueQueueItem $uniqueQueueItem, LoggerInterface $logger) {
parent::__construct($configuration, $plugin_id, $plugin_definition);
$this->uniqueQueueItem = $uniqueQueueItem;
$this->logger = $logger;
}
public static function create(ContainerInterface $container, array $configuration, $plugin_id, $plugin_definition) {
return new static($configuration, $plugin_id, $plugin_definition, $container
->get('tmgmt_extension_suit.utils.queue_unique_item'), $container
->get('logger.channel.tmgmt_extension_suit'));
}
public function processItem($data) {
$id = $data['id'];
try {
$job = entity_load('tmgmt_job', $id);
if (!$job || !$job
->hasTranslator()) {
return;
}
$plugin = $job
->getTranslator()
->getPlugin();
if ($plugin instanceof ExtendedTranslatorPluginInterface && $plugin
->isReadyForDownload($job)) {
$this->uniqueQueueItem
->addItem('tmgmt_extension_suit_download', $data);
}
} catch (\Exception $e) {
$this->logger
->error($e
->getMessage());
}
}
}