From dac3ae9b23f423adbaad0acff30ceee3c5de0ace Mon Sep 17 00:00:00 2001 From: DanielSeifert Date: Thu, 15 Sep 2016 09:46:16 +0000 Subject: [PATCH] reduce delete calls because of heave db load --- .../d3/d3usersonline/models/d3usersonline.php | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/copy_this/modules/d3/d3usersonline/models/d3usersonline.php b/copy_this/modules/d3/d3usersonline/models/d3usersonline.php index e4b8e8f..0bf24b4 100644 --- a/copy_this/modules/d3/d3usersonline/models/d3usersonline.php +++ b/copy_this/modules/d3/d3usersonline/models/d3usersonline.php @@ -32,6 +32,8 @@ class d3usersonline extends oxbase protected $_httpXComingFrom = null; protected $_httpComingFrom = null; + protected $_iDeleteThreshold = 30; // Zeitdifferenz für Löschaufträge + /** * constructor */ @@ -48,8 +50,15 @@ class d3usersonline extends oxbase { startProfile(__METHOD__); - $iExptime = time() - $iExpTime; - oxDb::getDb()->Execute("delete from ".$this->getViewName()." where timevisit < $iExptime"); + $iTime = time(); + $iLastDeleteTime = oxRegistry::getConfig()->getShopConfVar('iLastDeleteTime', null, 'd3usersonline'); + + if ($iTime > $iLastDeleteTime + $this->_iDeleteThreshold) { + $iExptime = $iTime - $iExpTime; + oxDb::getDb()->Execute("delete from " . $this->getViewName() . " where timevisit < $iExptime"); + + oxRegistry::getConfig()->saveShopConfVar('int', 'iLastDeleteTime', $iTime, null, 'd3usersonline'); + } stopProfile(__METHOD__); } @@ -63,7 +72,7 @@ class d3usersonline extends oxbase $sSelect = "select count(oxid) AS counter, oxclass from ". $this->getViewName()." GROUP BY oxclass ORDER BY counter desc"; - $aRecords = oxDb::getDb(oxDb::FETCH_MODE_ASSOC)->getArray($sSelect); + $aRecords = oxDb::getDb(oxDb::FETCH_MODE_ASSOC)->getAll($sSelect); $iAllCounter = 0; $aUserClasses = array();