Observer.php 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. <?php
  2. /**
  3. * Copyright © Magento, Inc. All rights reserved.
  4. * See COPYING.txt for license details.
  5. */
  6. namespace Magento\Newsletter\Model;
  7. /**
  8. * Newsletter module observer
  9. *
  10. * @SuppressWarnings(PHPMD.LongVariable)
  11. */
  12. class Observer
  13. {
  14. /**
  15. * Queue collection factory
  16. *
  17. * @var \Magento\Newsletter\Model\ResourceModel\Queue\CollectionFactory
  18. */
  19. protected $_queueCollectionFactory;
  20. /**
  21. * Construct
  22. *
  23. * @param \Magento\Newsletter\Model\ResourceModel\Queue\CollectionFactory $queueCollectionFactory
  24. */
  25. public function __construct(
  26. \Magento\Newsletter\Model\ResourceModel\Queue\CollectionFactory $queueCollectionFactory
  27. ) {
  28. $this->_queueCollectionFactory = $queueCollectionFactory;
  29. }
  30. /**
  31. * Scheduled send handler
  32. *
  33. * @return void
  34. */
  35. public function scheduledSend()
  36. {
  37. $countOfQueue = 3;
  38. $countOfSubscriptions = 20;
  39. /** @var \Magento\Newsletter\Model\ResourceModel\Queue\Collection $collection */
  40. $collection = $this->_queueCollectionFactory->create();
  41. $collection->setPageSize($countOfQueue)->setCurPage(1)->addOnlyForSendingFilter()->load();
  42. $collection->walk('sendPerSubscriber', [$countOfSubscriptions]);
  43. }
  44. }