vendor/terminal42/notification_center/library/NotificationCenter/Frontend/PoorMansCron.php line 32

Open in your IDE?
  1. <?php
  2. /**
  3. * notification_center extension for Contao Open Source CMS
  4. *
  5. * @copyright Copyright (c) 2008-2015, terminal42
  6. * @author terminal42 gmbh <info@terminal42.ch>
  7. * @license LGPL
  8. */
  9. namespace NotificationCenter\Frontend;
  10. use NotificationCenter\Model\Gateway;
  11. class PoorMansCron
  12. {
  13. public function minutely() { $this->sendMessagesFromQueue('minutely'); }
  14. public function hourly() { $this->sendMessagesFromQueue('hourly'); }
  15. public function daily() { $this->sendMessagesFromQueue('daily'); }
  16. public function weekly() { $this->sendMessagesFromQueue('weekly'); }
  17. public function monthly() { $this->sendMessagesFromQueue('monthly'); }
  18. /**
  19. * Triggers queues and sends their messages based on poor man cron jobs.
  20. *
  21. * @param string $interval
  22. */
  23. private function sendMessagesFromQueue($interval)
  24. {
  25. $queueGateways = Gateway::findQueuesByInterval($interval);
  26. if ($queueGateways === null) {
  27. return;
  28. }
  29. /** @var $queueManager \NotificationCenter\Queue\QueueManagerInterface */
  30. $queueManager = $GLOBALS['NOTIFICATION_CENTER']['QUEUE_MANAGER'];
  31. foreach ($queueGateways as $queueGateway) {
  32. $queueManager->sendFromQueue($queueGateway->id, (int) $queueGateway->queue_cronMessages);
  33. }
  34. }
  35. }