Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/matomo-org/matomo.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/Live/Controller.php')
-rw-r--r--plugins/Live/Controller.php49
1 files changed, 35 insertions, 14 deletions
diff --git a/plugins/Live/Controller.php b/plugins/Live/Controller.php
index 9d1dbc9a6b..5d9590df6b 100644
--- a/plugins/Live/Controller.php
+++ b/plugins/Live/Controller.php
@@ -14,6 +14,7 @@ use Piwik\Config;
use Piwik\Piwik;
use Piwik\DataTable;
use Piwik\Plugins\Goals\API as APIGoals;
+use Piwik\Plugins\Live\Exception\MaxExecutionTimeExceededException;
use Piwik\Plugins\Live\Visualizations\VisitorLog;
use Piwik\Url;
use Piwik\View;
@@ -116,20 +117,40 @@ class Controller extends \Piwik\Plugin\Controller
private function setCounters($view)
{
$segment = Request::getRawSegmentFromRequest();
- $last30min = Request::processRequest('Live.getCounters', [
- 'idSite' => $this->idSite,
- 'lastMinutes' => 30,
- 'segment' => $segment,
- 'showColumns' => 'visits,actions',
- ], $default = []);
- $last30min = $last30min[0];
- $today = Request::processRequest('Live.getCounters', [
- 'idSite' => $this->idSite,
- 'lastMinutes' => 24 * 60,
- 'segment' => $segment,
- 'showColumns' => 'visits,actions',
- ], $default = []);
- $today = $today[0];
+ $executeTodayQuery = true;
+ $view->countErrorToday = '';
+ $view->countErrorHalfHour = '';
+ try {
+ $last30min = Request::processRequest('Live.getCounters', [
+ 'idSite' => $this->idSite,
+ 'lastMinutes' => 30,
+ 'segment' => $segment,
+ 'showColumns' => 'visits,actions',
+ ], $default = []);
+ $last30min = $last30min[0];
+ } catch (MaxExecutionTimeExceededException $e) {
+ $last30min = ['visits' => '-', 'actions' => '-'];
+ $today = ['visits' => '-', 'actions' => '-'];
+ $view->countErrorToday = $e->getMessage();
+ $view->countErrorHalfHour = $e->getMessage();
+ $executeTodayQuery = false; // if query for last 30 min failed, we also expect the 24 hour query to fail
+ }
+
+ try {
+ if ($executeTodayQuery) {
+ $today = Request::processRequest('Live.getCounters', [
+ 'idSite' => $this->idSite,
+ 'lastMinutes' => 24 * 60,
+ 'segment' => $segment,
+ 'showColumns' => 'visits,actions',
+ ], $default = []);
+ $today = $today[0];
+ }
+ } catch (MaxExecutionTimeExceededException $e) {
+ $today = ['visits' => '-', 'actions' => '-'];
+ $view->countErrorToday = $e->getMessage();
+ }
+
$view->visitorsCountHalfHour = $last30min['visits'];
$view->visitorsCountToday = $today['visits'];
$view->pisHalfhour = $last30min['actions'];