diff options
author | matt <matt@59fd770c-687e-43c8-a1e3-f5a4ff64c105> | 2010-07-29 02:56:04 +0400 |
---|---|---|
committer | matt <matt@59fd770c-687e-43c8-a1e3-f5a4ff64c105> | 2010-07-29 02:56:04 +0400 |
commit | 4c7cfd7371774c9690000cc5671af84790e6e350 (patch) | |
tree | 4a5507f1211a53405b9b754a41a6cb73ba91404f /core/Tracker | |
parent | 35afa168a0ef826f1f4de908efae55cdd84a2253 (diff) |
Fixes #587
* Adding automatic crontab task triggered from Tracking requests on piwik.php.
* Define max frequency in config file, default to 1 try each hour.
* Will not run if 'Browser archiving' is disabled, as it means the cron is already setup, and it will run scheduled tasks.
* Note that Scheduled tasks only do not necessarily trigger archiving. The user might still experience slow loading time if he loads Piwik after a long absence.
We could consider writing a scheduled tasks that triggers archiving daily for each website
Diffstat (limited to 'core/Tracker')
-rw-r--r-- | core/Tracker/GoalManager.php | 5 | ||||
-rw-r--r-- | core/Tracker/Visit.php | 8 |
2 files changed, 6 insertions, 7 deletions
diff --git a/core/Tracker/GoalManager.php b/core/Tracker/GoalManager.php index 97de874585..11d11fe2de 100644 --- a/core/Tracker/GoalManager.php +++ b/core/Tracker/GoalManager.php @@ -25,7 +25,6 @@ class Piwik_Tracker_GoalManager */ protected $action = null; protected $convertedGoals = array(); - protected $idsite = null; function setCookie($cookie) { @@ -162,7 +161,7 @@ class Piwik_Tracker_GoalManager return true; } - function recordGoals($visitorInformation, $action) + function recordGoals($idSite, $visitorInformation, $action) { $location_country = isset($visitorInformation['location_country']) ? $visitorInformation['location_country'] @@ -177,7 +176,7 @@ class Piwik_Tracker_GoalManager $goal = array( 'idvisit' => $visitorInformation['idvisit'], - 'idsite' => $visitorInformation['idsite'], + 'idsite' => $idSite, 'visitor_idcookie' => $visitorInformation['visitor_idcookie'], 'server_time' => Piwik_Tracker::getDatetimeFromTimestamp($visitorInformation['visit_last_action_time']), 'location_country' => $location_country, diff --git a/core/Tracker/Visit.php b/core/Tracker/Visit.php index e384b2d358..7aaed4fa99 100644 --- a/core/Tracker/Visit.php +++ b/core/Tracker/Visit.php @@ -198,7 +198,7 @@ class Piwik_Tracker_Visit implements Piwik_Tracker_Visit_Interface if($someGoalsConverted) { $goalManager->setCookie($this->cookie); - $goalManager->recordGoals($this->visitorInfo, $action); + $goalManager->recordGoals( $this->idsite, $this->visitorInfo, $action); } unset($goalManager); unset($action); @@ -305,16 +305,16 @@ class Piwik_Tracker_Visit implements Piwik_Tracker_Visit_Interface AND visitor_idcookie = ? LIMIT 1"; array_push($sqlBind, $this->idsite, $this->visitorInfo['idvisit'], $this->visitorInfo['visitor_idcookie'] ); - $result = Piwik_Tracker::getDatabase()->query($sqlQuery, $sqlBind); printDebug('Updating visitor with idvisit='.$this->visitorInfo['idvisit'].', setting visit_last_action_time='.$datetimeServer.' and visit_total_time='.$visitTotalTime); if(Piwik_Tracker::getDatabase()->rowCount($result) == 0) { - throw new Piwik_Tracker_Visit_VisitorNotFoundInDatabase("The visitor with visitor_idcookie=".$this->visitorInfo['visitor_idcookie']." and idvisit=".$this->visitorInfo['idvisit']." wasn't found in the DB, we fallback to a new visitor"); + throw new Piwik_Tracker_Visit_VisitorNotFoundInDatabase( + "The visitor with visitor_idcookie=".$this->visitorInfo['visitor_idcookie']." and idvisit=".$this->visitorInfo['idvisit'] + ." wasn't found in the DB, we fallback to a new visitor"); } - $this->visitorInfo['idsite'] = $this->idsite; $this->visitorInfo['visit_last_action_time'] = $serverTimestamp; Piwik_PostEvent('Tracker.knownVisitorInformation', $this->visitorInfo); |