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

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. }