/** * Dataprovider for testRun */ public function runDataProvider() { $now = time(); $dailySchedule = $this->getMock('Piwik\\Scheduler\\Schedule\\Daily', array('getTime')); $dailySchedule->expects($this->any())->method('getTime')->will($this->returnValue($now)); $scheduledTaskOne = new Task($this, 'scheduledTaskOne', null, $dailySchedule); $scheduledTaskTwo = new Task($this, 'scheduledTaskTwo', 1, $dailySchedule); $scheduledTaskThree = new Task($this, 'scheduledTaskThree', null, $dailySchedule); $caseOneExpectedTable = array(__CLASS__ . '.scheduledTaskOne' => $scheduledTaskOne->getRescheduledTime(), __CLASS__ . '.scheduledTaskTwo_1' => $now + 60000, __CLASS__ . '.scheduledTaskThree' => $scheduledTaskThree->getRescheduledTime()); $caseTwoTimetableBeforeExecution = $caseOneExpectedTable; $caseTwoTimetableBeforeExecution[__CLASS__ . '.scheduledTaskThree'] = $now; // simulate elapsed time between case 1 and 2 return array(array($caseOneExpectedTable, array(__CLASS__ . '.scheduledTaskOne'), array(__CLASS__ . '.scheduledTaskOne' => $now, __CLASS__ . '.scheduledTaskTwo_1' => $now + 60000), array($scheduledTaskOne, $scheduledTaskTwo, $scheduledTaskThree)), array(array(__CLASS__ . '.scheduledTaskOne' => $scheduledTaskOne->getRescheduledTime(), __CLASS__ . '.scheduledTaskThree' => $scheduledTaskThree->getRescheduledTime()), array(__CLASS__ . '.scheduledTaskThree'), $caseTwoTimetableBeforeExecution, array($scheduledTaskOne, $scheduledTaskThree))); }
public function rescheduleTask(Task $task) { $rescheduledTime = $task->getRescheduledTime(); // update the scheduled time $this->timetable[$task->getName()] = $rescheduledTime; $this->save(); return Date::factory($rescheduledTime); }
/** * See {@link Piwik\Scheduler\Schedule\Schedule::getRescheduledTime()}. */ public function getRescheduledTime() { $nextScheduledTime = parent::getRescheduledTime(); // if a geoip database is out of date, run the updater as soon as possible if ($this->isAtLeastOneGeoIpDbOutOfDate($nextScheduledTime)) { return time(); } return $nextScheduledTime; }