Jump to content

Limitation de la conservation des connexions des clients


Recommended Posts

Bonjour,

Je souhaite limiter la durée de conservation des données de connexion à mon site web. J'ai vu qu'il était possible de spécifier une durée : semaine, mois ou années au delà de laquelle les données sont supprimées. Voir dans "connection.php" :

	public static function cleanConnectionsPages()
	{
		$period = Configuration::get('PS_STATS_OLD_CONNECT_AUTO_CLEAN');
		if ($period === 'week')
			$interval = '1 WEEK';
		else if ($period === 'month')
			$interval = '1 MONTH';
		else if ($period === 'year')
			$interval = '1 YEAR';
		else
			return;
		if ($interval != null)
		{
			// Records of connections details older than the beginning of the  specified interval are deleted
			Db::getInstance()->execute('
			DELETE FROM `'._DB_PREFIX_.'connections_page`
			WHERE time_start < LAST_DAY(DATE_SUB(NOW(), INTERVAL '.$interval.'))');
		}
	}

Par contre, je ne sais pas du tout comment/où définir cette valeur de "Configuration::get('PS_STATS_OLD_CONNECT_AUTO_CLEAN')". Je l'ai ajouté à la table "ps_configuration", mais ça n'a rien changé.

Quelqu'un saurait me dire comment on est censé faire ?

Merci !

Link to comment
Share on other sites

Ok, merci. Par contre, le code parle de nettoyer la table "connection_page", mais après test, il semblerait que ce soit plutôt la table "connection" qu'il faudrait vider. Ou les 2 ? Quelle en est la différence ?

Merci.

Link to comment
Share on other sites

Je crois que nous ne nous comprenons pas.

Cette fonction, abandonnée (sans notification d'ailleurs - mais en ayant laissé traîner le code bien m***ique) est juste une tueuse de performance.

Si tu as 2 connexions simultanées à ton shop la 1ere lock la table pour faire le delete (normal) et mets donc la seconde en attente. C'est du code écrit pour des boutiques dînette avec jamais plus d'un visiteur à la fois - j'ose espérer que tu veux avoir plus que cela - alors abandonne cette fonction.

D'autant qu'elle a été écrite sans aucune considération des contraintes d'intégrité du schéma. Et oui, PrestaShop (société) ne connaît pas PrestaShop (code).

 

Il faut faire ce travail via cron, mais il n'y a pratiquement jamais besoin de faire cela. Ce n'est pas quelques gigas parfaitement indexé qui vont faire peur à ton moteur mySQL. J'ai des boutiques avec de gros débit et 100+ giga dans ces tables sans aucun problème.

J'ai également écris un module pour purger les éléments (en cron) après un délai raisonnable (2 ans) - faudrait que je le package proprement pour le mettre en vente sur mon site (pas pris le temps en raison du peu d'interêt - donc marché pour celui-ci)

 

https://aide.prestashop.click/topic/77/comment-vider-les-grosses-tables-gourmandes-comme-connections-guest-cart

 

 

 

Link to comment
Share on other sites

Oui, je comprends bien qu'il ne faut pas utiliser cette fonction ! Je cherchais juste quelle table je dois vider dans mon CRON. Ce n'est pas pour limiter la taille de ma base, mais pour être compatible avec le RGPD : il n'y a aucune raison pour que je conserve des données de connexion de mes clients pendant des années. 1 mois me semble correct pour répondre à des problèmes de connexion qu'ils auraient.

Je cherchais donc à comprendre à quoi servait la table "connection_page" vu qu'il me semble que la table qui contient les vraies valeurs de connexion (et celle que je dois vider) soit "connection" tout court.

Merci !

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...