Lock.php 1020 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\MessageQueue\Model\Plugin\ResourceModel;
  7. /**
  8. * Lock plugin to clear queue upon maintenance mode turning off.
  9. */
  10. class Lock
  11. {
  12. /**
  13. * @var \Magento\Framework\MessageQueue\Lock\WriterInterface
  14. */
  15. private $lock;
  16. /**
  17. * Lock constructor.
  18. *
  19. * @param \Magento\Framework\MessageQueue\Lock\WriterInterface $lock
  20. */
  21. public function __construct(\Magento\Framework\MessageQueue\Lock\WriterInterface $lock)
  22. {
  23. $this->lock = $lock;
  24. }
  25. /**
  26. * When maintenance mode is turned off, lock queue should be cleared
  27. *
  28. * @param \Magento\Framework\App\MaintenanceMode $subject
  29. * @param boolean $result
  30. * @return void
  31. */
  32. public function afterSet(\Magento\Framework\App\MaintenanceMode $subject, $result)
  33. {
  34. if (!$subject->isOn() && $result) {
  35. $this->lock->releaseOutdatedLocks();
  36. }
  37. }
  38. }