| <?php |
|
|
| |
| |
| |
| |
| |
| |
|
|
| namespace Piwik\Tracker; |
|
|
| use Piwik\CliMulti; |
| use Piwik\Common; |
| use Piwik\Option; |
| use Piwik\Tracker; |
|
|
| class ScheduledTasksRunner |
| { |
| public function shouldRun(Tracker $tracker) |
| { |
| if (Common::isPhpCliMode()) { |
| |
| |
| return false; |
| } |
|
|
| return $tracker->shouldRecordStatistics(); |
| } |
|
|
| |
| |
| |
| |
| |
| |
| |
| public function runScheduledTasks() |
| { |
| $now = time(); |
|
|
| |
| |
| $minimumInterval = TrackerConfig::getConfigValue('scheduled_tasks_min_interval'); |
|
|
| |
| |
| |
| $cache = Cache::getCacheGeneral(); |
|
|
| if ( |
| $minimumInterval <= 0 |
| || empty($cache['isBrowserTriggerEnabled']) |
| ) { |
| Common::printDebug("-> Scheduled tasks not running in Tracker: Browser archiving is disabled."); |
| return; |
| } |
|
|
| $nextRunTime = $cache['lastTrackerCronRun'] + $minimumInterval; |
|
|
| if ( |
| (defined('DEBUG_FORCE_SCHEDULED_TASKS') && DEBUG_FORCE_SCHEDULED_TASKS) |
| || $cache['lastTrackerCronRun'] === false |
| || $nextRunTime < $now |
| ) { |
| $cache['lastTrackerCronRun'] = $now; |
| Cache::setCacheGeneral($cache); |
|
|
| Option::set('lastTrackerCronRun', $cache['lastTrackerCronRun']); |
| Common::printDebug('-> Scheduled Tasks: Starting...'); |
|
|
| $invokeScheduledTasksUrl = "?module=API&format=csv&convertToUnicode=0&method=CoreAdminHome.runScheduledTasks&trigger=archivephp"; |
|
|
| $cliMulti = new CliMulti(); |
| $cliMulti->runAsSuperUser(); |
| $responses = $cliMulti->request(array($invokeScheduledTasksUrl)); |
| $resultTasks = reset($responses); |
|
|
| Common::printDebug($resultTasks); |
|
|
| Common::printDebug('Finished Scheduled Tasks.'); |
| } else { |
| Common::printDebug("-> Scheduled tasks not triggered."); |
| } |
|
|
| Common::printDebug("Next run will be from: " . date('Y-m-d H:i:s', $nextRunTime) . ' UTC'); |
| } |
| } |
|
|