PluginProbe ʕ •ᴥ•ʔ
Matomo Analytics – Powerful, Privacy-First Insights for WordPress / 4.3.0
Matomo Analytics – Powerful, Privacy-First Insights for WordPress v4.3.0
5.11.1 5.11.0 5.10.2 5.10.1 trunk 1.0.2 1.0.3 1.0.4 1.0.5 1.0.6 1.1.0 1.1.1 1.1.2 1.1.3 1.2.0 1.3.0 1.3.1 1.3.2 4.0.0 4.0.1 4.0.2 4.0.3 4.0.4 4.1.0 4.1.1 4.1.2 4.1.3 4.10.0 4.11.0 4.12.0 4.13.0 4.13.2 4.13.3 4.13.4 4.13.5 4.14.0 4.14.1 4.14.2 4.15.0 4.15.1 4.15.2 4.15.3 4.2.0 4.3.0 4.3.1 4.4.1 4.4.2 4.5.0 4.6.0 5.0.1 5.0.2 5.0.3 5.0.4 5.0.5 5.0.6 5.0.7 5.0.8 5.1.0 5.1.1 5.1.2 5.1.3 5.1.4 5.1.5 5.1.6 5.1.7 5.10.0 5.2.0 5.2.1 5.2.2 5.3.0 5.3.1 5.3.2 5.3.3 5.6.0 5.6.1 5.7.0 5.7.1 5.8.0 5.8.1 5.8.2
matomo / app / core / Tracker / ScheduledTasksRunner.php
matomo / app / core / Tracker Last commit date
Db 5 years ago Handler 5 years ago TableLogAction 5 years ago Visit 5 years ago Action.php 5 years ago ActionPageview.php 5 years ago Cache.php 5 years ago Db.php 5 years ago Failures.php 6 years ago FingerprintSalt.php 6 years ago GoalManager.php 5 years ago Handler.php 5 years ago IgnoreCookie.php 5 years ago LogTable.php 5 years ago Model.php 5 years ago PageUrl.php 5 years ago Request.php 5 years ago RequestProcessor.php 5 years ago RequestSet.php 5 years ago Response.php 5 years ago ScheduledTasksRunner.php 5 years ago Settings.php 5 years ago TableLogAction.php 5 years ago TrackerCodeGenerator.php 5 years ago TrackerConfig.php 5 years ago Visit.php 5 years ago VisitExcluded.php 5 years ago VisitInterface.php 5 years ago Visitor.php 5 years ago VisitorNotFoundInDb.php 5 years ago VisitorRecognizer.php 5 years ago
ScheduledTasksRunner.php
87 lines
1 <?php
2 /**
3 * Matomo - free/libre analytics platform
4 *
5 * @link https://matomo.org
6 * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
7 *
8 */
9
10 namespace Piwik\Tracker;
11
12 use Piwik\CliMulti;
13 use Piwik\Common;
14 use Piwik\Option;
15 use Piwik\Tracker;
16
17 class ScheduledTasksRunner
18 {
19
20 public function shouldRun(Tracker $tracker)
21 {
22 if (Common::isPhpCliMode()) {
23 // don't run scheduled tasks in CLI mode from Tracker, this is the case
24 // where we bulk load logs & don't want to lose time with tasks
25 return false;
26 }
27
28 return $tracker->shouldRecordStatistics();
29 }
30
31 /**
32 * Tracker requests will automatically trigger the Scheduled tasks.
33 * This is useful for users who don't setup the cron,
34 * but still want daily/weekly/monthly PDF reports emailed automatically.
35 *
36 * This is similar to calling the API CoreAdminHome.runScheduledTasks
37 */
38 public function runScheduledTasks()
39 {
40 $now = time();
41
42 // Currently, there are no hourly tasks. When there are some,
43 // this could be too aggressive minimum interval (some hours would be skipped in case of low traffic)
44 $minimumInterval = TrackerConfig::getConfigValue('scheduled_tasks_min_interval');
45
46 // If the user disabled browser archiving, they have already setup a cron
47 // To avoid parallel requests triggering the Scheduled Tasks,
48 // Get last time tasks started executing
49 $cache = Cache::getCacheGeneral();
50
51 if ($minimumInterval <= 0
52 || empty($cache['isBrowserTriggerEnabled'])
53 ) {
54 Common::printDebug("-> Scheduled tasks not running in Tracker: Browser archiving is disabled.");
55 return;
56 }
57
58 $nextRunTime = $cache['lastTrackerCronRun'] + $minimumInterval;
59
60 if ((defined('DEBUG_FORCE_SCHEDULED_TASKS') && DEBUG_FORCE_SCHEDULED_TASKS)
61 || $cache['lastTrackerCronRun'] === false
62 || $nextRunTime < $now
63 ) {
64 $cache['lastTrackerCronRun'] = $now;
65 Cache::setCacheGeneral($cache);
66
67 Option::set('lastTrackerCronRun', $cache['lastTrackerCronRun']);
68 Common::printDebug('-> Scheduled Tasks: Starting...');
69
70 $invokeScheduledTasksUrl = "?module=API&format=csv&convertToUnicode=0&method=CoreAdminHome.runScheduledTasks&trigger=archivephp";
71
72 $cliMulti = new CliMulti();
73 $cliMulti->runAsSuperUser();
74 $responses = $cliMulti->request(array($invokeScheduledTasksUrl));
75 $resultTasks = reset($responses);
76
77 Common::printDebug($resultTasks);
78
79 Common::printDebug('Finished Scheduled Tasks.');
80 } else {
81 Common::printDebug("-> Scheduled tasks not triggered.");
82 }
83
84 Common::printDebug("Next run will be from: " . date('Y-m-d H:i:s', $nextRunTime) . ' UTC');
85 }
86 }
87