Added expiration and deleted old cache data in pandora_db
This commit is contained in:
parent
5c0a197b6b
commit
2de2d1f482
|
@ -12,6 +12,7 @@ CREATE TABLE IF NOT EXISTS `tvisual_console_elements_cache` (
|
||||||
`user_id` VARCHAR(60) DEFAULT NULL,
|
`user_id` VARCHAR(60) DEFAULT NULL,
|
||||||
`data` TEXT NOT NULL,
|
`data` TEXT NOT NULL,
|
||||||
`created_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
`created_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||||
|
`expiration` INTEGER UNSIGNED NOT NULL COMMENT 'Seconds to expire',
|
||||||
PRIMARY KEY(`id`),
|
PRIMARY KEY(`id`),
|
||||||
FOREIGN KEY(`vc_id`) REFERENCES `tlayout`(`id`)
|
FOREIGN KEY(`vc_id`) REFERENCES `tlayout`(`id`)
|
||||||
ON DELETE CASCADE,
|
ON DELETE CASCADE,
|
||||||
|
|
|
@ -2115,6 +2115,7 @@ CREATE TABLE `tvisual_console_elements_cache` (
|
||||||
`user_id` VARCHAR(60) DEFAULT NULL,
|
`user_id` VARCHAR(60) DEFAULT NULL,
|
||||||
`data` TEXT NOT NULL,
|
`data` TEXT NOT NULL,
|
||||||
`created_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
`created_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||||
|
`expiration` INTEGER UNSIGNED NOT NULL COMMENT 'Seconds to expire',
|
||||||
PRIMARY KEY(`id`),
|
PRIMARY KEY(`id`),
|
||||||
FOREIGN KEY(`vc_id`) REFERENCES `tlayout`(`id`)
|
FOREIGN KEY(`vc_id`) REFERENCES `tlayout`(`id`)
|
||||||
ON DELETE CASCADE,
|
ON DELETE CASCADE,
|
||||||
|
|
|
@ -30,6 +30,7 @@ abstract class CacheModel extends Model
|
||||||
* Stores the data structure obtained.
|
* Stores the data structure obtained.
|
||||||
*
|
*
|
||||||
* @param array $filter Filter to retrieve the modeled element.
|
* @param array $filter Filter to retrieve the modeled element.
|
||||||
|
* @param array $data Data to store in cache.
|
||||||
*
|
*
|
||||||
* @return array The modeled element data structure stored into the DB.
|
* @return array The modeled element data structure stored into the DB.
|
||||||
* @throws \Exception When the data cannot be retrieved from the DB.
|
* @throws \Exception When the data cannot be retrieved from the DB.
|
||||||
|
@ -85,17 +86,18 @@ abstract class CacheModel extends Model
|
||||||
'vc_item_id' => $filter['id'],
|
'vc_item_id' => $filter['id'],
|
||||||
'vc_id' => $filter['id_layout'],
|
'vc_id' => $filter['id_layout'],
|
||||||
'user_id' => $config['id_user'],
|
'user_id' => $config['id_user'],
|
||||||
|
'expiration' => $filter['cache_expiration'],
|
||||||
],
|
],
|
||||||
$data
|
$data
|
||||||
);
|
);
|
||||||
return static::fromArray($data);
|
|
||||||
} else {
|
} else {
|
||||||
$data = \io_safe_output(\json_decode(\base64_decode($cacheData['data']), true));
|
$data = \io_safe_output(\json_decode(\base64_decode($cacheData['data']), true));
|
||||||
return static::fromArray($data);
|
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
return static::fromArray(static::fetchDataFromDB($filter));
|
$data = static::fetchDataFromDB($filter);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return static::fromArray($data);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -743,14 +743,13 @@ class Item extends CacheModel
|
||||||
WHERE vc_item_id = '.$filter['id'].'
|
WHERE vc_item_id = '.$filter['id'].'
|
||||||
AND vc_id = '.$filter['id_layout'].'
|
AND vc_id = '.$filter['id_layout'].'
|
||||||
AND user_id LIKE "'.$config['id_user'].'"
|
AND user_id LIKE "'.$config['id_user'].'"
|
||||||
AND (UNIX_TIMESTAMP(`created_at`) +'.$filter['cache_expiration'].') > UNIX_TIMESTAMP()'
|
AND (UNIX_TIMESTAMP(`created_at`) + `expiration`) > UNIX_TIMESTAMP()'
|
||||||
);
|
);
|
||||||
|
|
||||||
if ($row === false) {
|
if ($row === false) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
// $fecha = \date_create();
|
|
||||||
// $fecha = \date_timestamp_get($fecha);
|
|
||||||
$row = \io_safe_output(\io_safe_output($row));
|
$row = \io_safe_output(\io_safe_output($row));
|
||||||
|
|
||||||
return $row;
|
return $row;
|
||||||
|
@ -762,14 +761,14 @@ class Item extends CacheModel
|
||||||
*
|
*
|
||||||
* @param array $filter Filter to retrieve the modeled element.
|
* @param array $filter Filter to retrieve the modeled element.
|
||||||
*
|
*
|
||||||
* @return array The modeled element data structure stored into the DB.
|
* @return boolean The modeled element data structure stored into the DB.
|
||||||
* @throws \Exception When the data cannot be retrieved from the DB.
|
* @throws \Exception When the data cannot be retrieved from the DB.
|
||||||
*
|
*
|
||||||
* @override CacheModel::saveCachedData.
|
* @override CacheModel::saveCachedData.
|
||||||
*/
|
*/
|
||||||
protected static function saveCachedData(array $filter, array $data): bool
|
protected static function saveCachedData(array $filter, array $data): bool
|
||||||
{
|
{
|
||||||
db_process_sql_insert(
|
$result = \db_process_sql_insert(
|
||||||
'tvisual_console_elements_cache',
|
'tvisual_console_elements_cache',
|
||||||
[
|
[
|
||||||
'vc_id' => $filter['vc_id'],
|
'vc_id' => $filter['vc_id'],
|
||||||
|
@ -779,7 +778,8 @@ class Item extends CacheModel
|
||||||
'expiration' => $filter['expiration'],
|
'expiration' => $filter['expiration'],
|
||||||
]
|
]
|
||||||
);
|
);
|
||||||
return false;
|
|
||||||
|
return ($result > 0) ? true : false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -795,7 +795,6 @@ class Item extends CacheModel
|
||||||
*/
|
*/
|
||||||
protected static function clearCachedData(array $filter): int
|
protected static function clearCachedData(array $filter): int
|
||||||
{
|
{
|
||||||
hd($filter);
|
|
||||||
return \db_process_sql_delete('tvisual_console_elements_cache', $filter);
|
return \db_process_sql_delete('tvisual_console_elements_cache', $filter);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -3574,6 +3574,7 @@ CREATE TABLE IF NOT EXISTS `tvisual_console_elements_cache` (
|
||||||
`user_id` VARCHAR(60) DEFAULT NULL,
|
`user_id` VARCHAR(60) DEFAULT NULL,
|
||||||
`data` TEXT NOT NULL,
|
`data` TEXT NOT NULL,
|
||||||
`created_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
`created_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||||
|
`expiration` INTEGER UNSIGNED NOT NULL COMMENT 'Seconds to expire',
|
||||||
PRIMARY KEY(`id`),
|
PRIMARY KEY(`id`),
|
||||||
FOREIGN KEY(`vc_id`) REFERENCES `tlayout`(`id`)
|
FOREIGN KEY(`vc_id`) REFERENCES `tlayout`(`id`)
|
||||||
ON DELETE CASCADE,
|
ON DELETE CASCADE,
|
||||||
|
|
|
@ -446,6 +446,10 @@ sub pandora_purgedb ($$) {
|
||||||
my $message_limit = time() - 86400 * $conf->{'_delete_old_messages'};
|
my $message_limit = time() - 86400 * $conf->{'_delete_old_messages'};
|
||||||
db_do ($dbh, "DELETE FROM tmensajes WHERE timestamp < ?", $message_limit);
|
db_do ($dbh, "DELETE FROM tmensajes WHERE timestamp < ?", $message_limit);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Delete old cache data
|
||||||
|
log_message ('PURGE', "Deleting old cache data.");
|
||||||
|
db_do ($dbh, "DELETE FROM `tvisual_console_elements_cache` WHERE (UNIX_TIMESTAMP(`created_at`) + `expiration`) < UNIX_TIMESTAMP()");
|
||||||
}
|
}
|
||||||
|
|
||||||
###############################################################################
|
###############################################################################
|
||||||
|
|
Loading…
Reference in New Issue