fix(slowness): refs #8886 reduce session table updates
This commit is contained in:
parent
5b968b6e46
commit
3c552c86c7
|
@ -1,4 +1,4 @@
|
|||
hedera-web (25.4.4) stable; urgency=low
|
||||
hedera-web (25.4.5) stable; urgency=low
|
||||
|
||||
* Initial Release.
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "hedera-web",
|
||||
"version": "25.4.4",
|
||||
"version": "25.4.5",
|
||||
"description": "Verdnatura web page",
|
||||
"license": "GPL-3.0",
|
||||
"repository": {
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
namespace Vn\Web;
|
||||
|
||||
class DbSessionHandler implements \SessionHandlerInterface {
|
||||
const UPDATE_INTERVAL = 30;
|
||||
private $db;
|
||||
|
||||
function __construct($db) {
|
||||
|
@ -24,12 +25,23 @@ class DbSessionHandler implements \SessionHandlerInterface {
|
|||
}
|
||||
|
||||
function write($sessionId, $sessionData) {
|
||||
$this->db->query(
|
||||
'INSERT INTO userSession SET
|
||||
ssid = #, data = #, lastUpdate = NOW()
|
||||
ON DUPLICATE KEY UPDATE
|
||||
data = VALUES(data), lastUpdate = VALUES(lastUpdate)',
|
||||
[$sessionId, $sessionData]);
|
||||
$session = $this->db->getObject(
|
||||
'SELECT data, lastUpdate < (NOW() - INTERVAL # SECOND) hasToRefresh
|
||||
FROM userSession WHERE ssid = #',
|
||||
[self::UPDATE_INTERVAL, $sessionId]
|
||||
);
|
||||
|
||||
if (!isset($session)
|
||||
|| $sessionData !== $session->data
|
||||
|| $session->hasToRefresh) {
|
||||
$this->db->query(
|
||||
'INSERT INTO userSession SET
|
||||
ssid = #, data = #, lastUpdate = NOW()
|
||||
ON DUPLICATE KEY UPDATE
|
||||
data = VALUES(data), lastUpdate = VALUES(lastUpdate)',
|
||||
[$sessionId, $sessionData]);
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
@ -40,8 +52,8 @@ class DbSessionHandler implements \SessionHandlerInterface {
|
|||
|
||||
function gc($maxLifeTime) {
|
||||
$this->db->query('DELETE FROM userSession
|
||||
WHERE lastUpdate < TIMESTAMPADD(SECOND, -#, NOW())',
|
||||
[$maxLifeTime]
|
||||
WHERE lastUpdate < (NOW() - INTERVAL # SECOND)',
|
||||
[$maxLifeTime + self::UPDATE_INTERVAL + 1]
|
||||
);
|
||||
return TRUE;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue