Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5
Développement : "threader" un traitement dans un module perso
#1
Citation :#~~~~~ DEBUT BLOC A NE PAS SUPPRIMER ~~~~~
#~ Version du CMS: 1.11.4
#~ Url du site :
#~ Hébergeur / Soft :
#~ Informations Système :
#~~~~~ FIN BLOC A NE PAS SUPPRIMER ~~~~~



Bonjour,

Je suis en train de travailler sur un module perso et je dois implémenter une fonctionnalité de statistiques bien particulière.

Ma question ne porte pas sur la forme, mais plutôt sur la manière la moins pénalisante en terme de performances.

Lors de la consultation d'une page contenant mon module, et précisément une certaine action du module, les données doivent être enregistrées. Un cron se chargera de compiler les données tous les X temps.

J'aimerais que le traitement d'enregistrement des données soit effectué par une sorte de thread au sens language C du terme.

Cela pourrait également me servir pour le logging du module.

Je rêve peut-être un peu mais... est-ce que quelqu'un a déjà fait ce genre de chose ? Est-ce que c'est faisable selon vous ?

D'avance merci !
www.web-ep.be - Développeur Web Freelance - Développeur/Intégrateur CMS Made Simple (création de sites, développement de modules/plugins/templates sur mesure), spécialisé dans les sites pour l'immobilier.
Répondre
#2
peux tu préciser ?

J'appel une de tes pages avec des paramètres disons dans l'url
ca enregistre en base ces données
un batch lancé tous les X minutes passera sur ces données, les compilera dans une Tiers table de la base de donnée

J'ai bon ?
Répondre
#3
Bah en fait tout simplement, c'est encore pour le même module de gestion de biens immobiliers, je dois mémoriser le nombre de visites par bien (toutes langues confondues), tout en retirant les indésirables (robots, clics abusifs).

Ca sert uniquement à afficher un pavé avec les biens les plus consultés. Mais pour de futurs traitements, je vais logger toute la requête.

Afin de ne pas perdre de temps avec des requêtes SQL au moment du chargement de la page, j'ai ajouté un champ dans la DB des biens qui est un bête compteur.

Mais comme je veux éliminer certains hits, ce compteur sera lui-même alimenté par une petite procédure lancée périodiquement par une tache cron.

Lors de l'affichage d'un bien, je vais faire un INSERT dans une petite table de log contenant l'id de session, l'id du bien, l'url, le timestamp, remote address, remote host, l'url referer et user_agent.

C'est cette requête d'insert que j'aimerais détacher du processus d'affichage du bien pour ne pas ralentir ce dernier.

La tache cron aura elle pour objectif de compiler ponctuellement les infos emmagasinées, supprimer les données non-souhaitées, et mettre à jour le compteur correspondant au bien.
www.web-ep.be - Développeur Web Freelance - Développeur/Intégrateur CMS Made Simple (création de sites, développement de modules/plugins/templates sur mesure), spécialisé dans les sites pour l'immobilier.
Répondre
#4
DownCnt te fait déjà des logs + statistiques en charts et sépare les clics manuel des robots, tu pourrais t'en inspirer pour en plus avoir un log visuel des clics par IP (par exemple) afin de repérer et nettoyer les abus ?
Répondre
#5
Ah oui c'est vrai que j'ai encore jamais testé ce module... Je me suis déjà un peu inspiré de Statistics pour la table de logs mais j'ai pas encore fouillé plus pour les traitements même si j'ai déjà une bonne idée !
www.web-ep.be - Développeur Web Freelance - Développeur/Intégrateur CMS Made Simple (création de sites, développement de modules/plugins/templates sur mesure), spécialisé dans les sites pour l'immobilier.
Répondre
#6
j'utilise DownCnt pour faire un lien vers l'url d'une image vide (1px*1px transparent) dans les pages de l'annuaire pro. Ainsi chaque affichage de la page me fait un +1.

Ensuite je log les headers des requêtes HTTP, ce qui me permet de filtrer 99% des robots post-enregistrement comprendre : j'enregistre tout et je fais les graphs selon les choix de l'utilisateur : avec ou sans robots
Répondre


Atteindre :


Utilisateur(s) parcourant ce sujet : 1 visiteur(s)