Пример #1
0
 public function schedule()
 {
     foreach (API::getInstance()->getReports() as $report) {
         if (!$report['deleted'] && $report['period'] != ScheduledTime::PERIOD_NEVER) {
             $timezone = Site::getTimezoneFor($report['idsite']);
             $schedule = ScheduledTime::getScheduledTimeForPeriod($report['period']);
             $schedule->setHour($report['hour']);
             $schedule->setTimezone($timezone);
             $this->custom(API::getInstance(), 'sendReport', $report['idreport'], $schedule);
         }
     }
 }
 public function getScheduledTasks(&$tasks)
 {
     $arbitraryDateInUTC = Date::factory('2011-01-01');
     foreach (API::getInstance()->getReports() as $report) {
         if (!$report['deleted'] && $report['period'] != ScheduledTime::PERIOD_NEVER) {
             $midnightInSiteTimezone = date('H', Date::factory($arbitraryDateInUTC, Site::getTimezoneFor($report['idsite']))->getTimestamp());
             $hourInUTC = (24 - $midnightInSiteTimezone + $report['hour']) % 24;
             $schedule = ScheduledTime::getScheduledTimeForPeriod($report['period']);
             $schedule->setHour($hourInUTC);
             $tasks[] = new ScheduledTask(API::getInstance(), 'sendReport', $report['idreport'], $schedule);
         }
     }
 }