[spip-dev] modifs dans le calcul des referers

Coucou,

modifs dans le calcul des referers :

J'essaie de rendre le calcul des referers plus digeste par le serveur : on
traite les md5(referers) par lots de 100... Du coup, au lieu de les dater de
la veille, on les date du moment du calcul, et on lance le calcul toutes les
heures.

A chaque fois qu'un lot de 100 est terminé, la fonction remet un meta qui
lancera le calcukl des 100 suivants au prochain hit, jusqu'à épuisement du
stock. C'est peut-être un peu overkill, vu que, du coup, ça va moins se
remplir... mais on assure comme ça le vidage d'une base qui a des referrs à
traiter "ras la gueule".

J'espère que le code est bon :wink:

Je ne sais pas trop pour l'histoire des dates, puisque j'ai décalé la date
d'"hier" vers "aujourd'hui" ; a priori ça devrait marcher, mais j'ai
peut-être oublié un point.

-- Fil

Fil wrote:

Coucou,

modifs dans le calcul des referers :

J'essaie de rendre le calcul des referers plus digeste par le serveur : on
traite les md5(referers) par lots de 100... Du coup, au lieu de les dater de
la veille, on les date du moment du calcul, et on lance le calcul toutes les
heures.

A chaque fois qu'un lot de 100 est terminé, la fonction remet un meta qui
lancera le calcukl des 100 suivants au prochain hit, jusqu'à épuisement du
stock. C'est peut-être un peu overkill, vu que, du coup, ça va moins se remplir... mais on assure comme ça le vidage d'une base qui a des referrs à
traiter "ras la gueule".

J'espère que le code est bon :wink:

Je ne sais pas trop pour l'histoire des dates, puisque j'ai décalé la date
d'"hier" vers "aujourd'hui" ; a priori ça devrait marcher, mais j'ai
peut-être oublié un point.

+ if ((time() - $date_refs) > 3600) {
      include_ecrire("inc_connect.php3");
      if ($GLOBALS['db_ok']) {
        include_ecrire("inc_meta.php3");
        ecrire_meta("date_stats_referers", time());
+ ecrire_meta('calculer_referers_now', 'oui');
        ecrire_metas();

Heu... et s'il y a plus de 2400 entrées par jour dans spip_referers_temp ???
Pourquoi attendre une heure au lieu de le faire à la connexion suivante ?

>Je ne sais pas trop pour l'histoire des dates, puisque j'ai décalé la date
>d'"hier" vers "aujourd'hui" ; a priori ça devrait marcher, mais j'ai
>peut-être oublié un point.

+ if ((time() - $date_refs) > 3600) {
     include_ecrire("inc_connect.php3");
     if ($GLOBALS['db_ok']) {
       include_ecrire("inc_meta.php3");
       ecrire_meta("date_stats_referers", time());
+ ecrire_meta('calculer_referers_now', 'oui');
       ecrire_metas();

Heu... et s'il y a plus de 2400 entrées par jour dans spip_referers_temp ???
Pourquoi attendre une heure au lieu de le faire à la connexion suivante ?

T'as pas pigé :wink: Si on met ecrire_meta('calculer_referers_now', 'non') au
début du calcul des stats, c'est pour locker (éviter des calculs de referers
concurrents - surtout quand la requeête prend 10 ou 30 secondes); ensuite,
si on zs'aperçoit qu'avec 100 referers on n'a pas tout ttraité, on remet
ecrire_meta('calculer_referers_now', 'oui') pour que le prochain hit en
calcule de nouveau 100, jusqu'à épuisement du stock... une heure plus tard,
ça se repositionne sur 'oui' et c'est reparti pour quelques tours.

-- Fil