From 080798caeb70646d64dd892a038742780ddb0b10 Mon Sep 17 00:00:00 2001 From: Mitesh Patel Date: Fri, 1 Feb 2019 00:15:06 +0530 Subject: [PATCH] Inject cache_tags.invalidator service as dependency injection to invlidate tags. --- .../acm_promotion/src/AcmPromotionQueueBase.php | 17 +++++++++++++++-- .../QueueWorker/AcmPromotionAttachQueue.php | 2 +- .../QueueWorker/AcmPromotionDetachQueue.php | 2 +- 3 files changed, 17 insertions(+), 4 deletions(-) diff --git a/modules/acm_promotion/src/AcmPromotionQueueBase.php b/modules/acm_promotion/src/AcmPromotionQueueBase.php index 2657a9a..3ce5f40 100644 --- a/modules/acm_promotion/src/AcmPromotionQueueBase.php +++ b/modules/acm_promotion/src/AcmPromotionQueueBase.php @@ -7,6 +7,7 @@ use Drupal\Core\Plugin\ContainerFactoryPluginInterface; use Drupal\Core\Queue\QueueWorkerBase; use Symfony\Component\DependencyInjection\ContainerInterface; +use Drupal\Core\Cache\CacheTagsInvalidatorInterface; /** * Class AcmPromotionQueueBase. @@ -29,6 +30,13 @@ abstract class AcmPromotionQueueBase extends QueueWorkerBase implements Containe */ protected $logger; + /** + * The cache tags invalidator. + * + * @var \Drupal\Core\Cache\CacheTagsInvalidatorInterface + */ + protected $tagInvalidate; + /** * AcmPromotionAttachQueue constructor. * @@ -42,15 +50,19 @@ abstract class AcmPromotionQueueBase extends QueueWorkerBase implements Containe * IngestAPIWrapper Service object. * @param \Drupal\Core\Logger\LoggerChannelFactory $loggerFactory * Logger service. + * @param \Drupal\Core\Cache\CacheTagsInvalidatorInterface $tag_invalidate + * The cache tags invalidator. */ public function __construct(array $configuration, $plugin_id, $plugin_definition, IngestAPIWrapper $ingestApiWrapper, - LoggerChannelFactory $loggerFactory) { + LoggerChannelFactory $loggerFactory, + CacheTagsInvalidatorInterface $tag_invalidate) { parent::__construct($configuration, $plugin_id, $plugin_definition); $this->ingestApiWrapper = $ingestApiWrapper; $this->logger = $loggerFactory->get('acm_sku'); + $this->tagInvalidate = $tag_invalidate; } /** @@ -74,7 +86,8 @@ public static function create(ContainerInterface $container, array $configuratio $plugin_id, $plugin_definition, $container->get('acm.ingest_api'), - $container->get('logger.factory') + $container->get('logger.factory'), + $container->get('cache_tags.invalidator') ); } diff --git a/modules/acm_promotion/src/Plugin/QueueWorker/AcmPromotionAttachQueue.php b/modules/acm_promotion/src/Plugin/QueueWorker/AcmPromotionAttachQueue.php index b277c14..b60e2fa 100644 --- a/modules/acm_promotion/src/Plugin/QueueWorker/AcmPromotionAttachQueue.php +++ b/modules/acm_promotion/src/Plugin/QueueWorker/AcmPromotionAttachQueue.php @@ -114,7 +114,7 @@ public function processItem($data) { } // Invalidate sku cache tags & related promotion nid. - Cache::invalidateTags($invalidate_tags); + $this->tagInvalidate->invalidateTags($invalidate_tags); if (!empty($skus_not_found)) { $this->logger->warning('Skus @skus not found in Drupal.', diff --git a/modules/acm_promotion/src/Plugin/QueueWorker/AcmPromotionDetachQueue.php b/modules/acm_promotion/src/Plugin/QueueWorker/AcmPromotionDetachQueue.php index 61e3da3..087bb03 100644 --- a/modules/acm_promotion/src/Plugin/QueueWorker/AcmPromotionDetachQueue.php +++ b/modules/acm_promotion/src/Plugin/QueueWorker/AcmPromotionDetachQueue.php @@ -81,7 +81,7 @@ public function processItem($data) { $sku_texts = implode(',', $skus); // Invalidate cache tags for updated skus & promotions. - Cache::invalidateTags($invalidate_tags); + $this->tagInvalidate->invalidateTags($invalidate_tags); $this->logger->info('Detached Promotion:@promo from SKUs: @skus', ['@promo' => $promotion_nid, '@skus' => $sku_texts]);