ClearExpiredCronJobObserver.php 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. <?php
  2. /**
  3. *
  4. * Copyright © Magento, Inc. All rights reserved.
  5. * See COPYING.txt for license details.
  6. */
  7. namespace Magento\Persistent\Observer;
  8. use Magento\Framework\Event\ObserverInterface;
  9. class ClearExpiredCronJobObserver
  10. {
  11. /**
  12. * Website collection factory
  13. *
  14. * @var \Magento\Store\Model\ResourceModel\Website\CollectionFactory
  15. */
  16. protected $_websiteCollectionFactory;
  17. /**
  18. * Session factory
  19. *
  20. * @var \Magento\Persistent\Model\SessionFactory
  21. */
  22. protected $_sessionFactory;
  23. /**
  24. * @param \Magento\Store\Model\ResourceModel\Website\CollectionFactory $websiteCollectionFactory
  25. * @param \Magento\Persistent\Model\SessionFactory $sessionFactory
  26. */
  27. public function __construct(
  28. \Magento\Store\Model\ResourceModel\Website\CollectionFactory $websiteCollectionFactory,
  29. \Magento\Persistent\Model\SessionFactory $sessionFactory
  30. ) {
  31. $this->_websiteCollectionFactory = $websiteCollectionFactory;
  32. $this->_sessionFactory = $sessionFactory;
  33. }
  34. /**
  35. * Clear expired persistent sessions
  36. *
  37. * @param \Magento\Cron\Model\Schedule $schedule
  38. * @return $this
  39. * @SuppressWarnings(PHPMD.UnusedFormalParameter)
  40. */
  41. public function execute(\Magento\Cron\Model\Schedule $schedule)
  42. {
  43. $websiteIds = $this->_websiteCollectionFactory->create()->getAllIds();
  44. if (!is_array($websiteIds)) {
  45. return $this;
  46. }
  47. foreach ($websiteIds as $websiteId) {
  48. $this->_sessionFactory->create()->deleteExpired($websiteId);
  49. }
  50. return $this;
  51. }
  52. }