Changeset 66068 in spip-zone


Ignore:
Timestamp:
Sep 19, 2012, 7:08:15 PM (8 years ago)
Author:
yffic@…
Message:

Report de 66067 :
Ne faire qu'une seule fois par hit le déplacement de n documents. Sinon dans le cas d'une insertion de plusieurs docs venant d'un zip, on explose le temps de connexion à la base.

Location:
_plugins_/hash_documents/trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/hash_documents/trunk/hasher_fonctions.php

    r63200 r66068  
    4040        // 1. recuperer les donnees du document
    4141        // et verifier qu'on peut le hasher
    42         if (!$id_document = intval($id_document))
     42        if (!$id_document = intval($id_document)){
     43                spip_log("Erreur hasher_deplacer_document intval $id_document", 'hash');
    4344                return false;
     45        }
    4446        if (!$s = spip_query('SELECT fichier FROM spip_documents WHERE id_document='.$id_document)
    4547        OR !$t = spip_fetch_array($s)) {
    46                 spip_log("Erreur hasher_deplacer_document select doc=$id_document ".var_export($s, true), 'hash'. _LOG_ERREUR);
     48                spip_log("Erreur hasher_deplacer_document select doc=$id_document ".var_export($s, true), 'hash');
    4749                return false;
    4850        }
     
    5557                ? _DIR_RACINE : _DIR_IMG;
    5658
    57         // On fabrique le nom  du fichier dest
     59        // On fabrique le nom du fichier dest
    5860        if (!$dest = hasher_adresser_document($src, $rev)) {
    59                 spip_log("Erreur hasher_adresser_document($src) rev : $rev", 'hash'. _LOG_ERREUR);
     61                spip_log("Erreur hasher_adresser_document($src) rev : $rev", 'hash');
    6062                return false;
    6163        }
     
    6365        // si le src n'existe pas, ciao, enfin presque
    6466        if (!file_exists($dir_ref.$src)) {
    65                 spip_log("Erreur hasher_deplacer_document fichier $dir_ref $src n'existe pas", 'hash'. _LOG_ERREUR);
     67                spip_log("Erreur hasher_deplacer_document id_document $id_document fichier $dir_ref $src n'existe pas", 'hash');
    6668
    6769                // si le src n'existe pas, on verifie qu'il n'a pas deja ete déplace (ie le dest existe),
     
    7173                                // on note la destination finale
    7274                                if (!spip_query('UPDATE spip_documents SET fichier="'.$img.$dest.'" WHERE id_document='.$id_document)) {
    73                                         spip_log("Erreur update correction $img $dest doc $id_document", 'hash'. _LOG_ERREUR);
     75                                        spip_log("erreur hasher_deplacer_document update correction $img $dest doc $id_document", 'hash');
    7476                                        return false;
    7577                                } else {
    76                                         spip_log("hasher_deplacer_document fichier "._DIR_IMG."$dest existe deja, Table corrigee", 'hash'._LOG_INFO);
     78                                        spip_log("hasher_deplacer_document fichier "._DIR_IMG."$dest existe deja, Table corrigee", 'hash');
    7779                                        return true ;
    7880                                }
    7981                        } else {
    80                                 spip_log("hasher_deplacer_document fichier "._DIR_IMG."$dest n'existe pas", 'hash'._LOG_INFO);
     82                                spip_log("hasher_deplacer_document fichier "._DIR_IMG."$dest n'existe pas", 'hash');
    8183                        }
    8284                }
     
    9496        if (!is_dir(_DIR_IMG.$dir = dirname($dest))
    9597        AND !mkdir(_DIR_IMG.$dir, _SPIP_CHMOD, /* recursive, php5 */ true)) {
    96                 spip_log("Erreur hasher_deplacer_document mkdir($dir)", 'hash'. _LOG_ERREUR);
     98                spip_log("erreur hasher_deplacer_document mkdir($dir)", 'hash');
    9799                return false;
    98100        }
     
    102104        // ca casse on saura reparer
    103105        if (!spip_query('UPDATE spip_documents SET fichier=CONCAT("-", fichier) WHERE id_document='.$id_document)) {
    104                 spip_log("Erreur update 1", 'hash'. _LOG_ERREUR);
     106                spip_log("erreur hasher_deplacer_document update 1", 'hash');
    105107                return false;
    106108        }
    107109        // on deplace
    108110        if (!rename($dir_ref.$src, _DIR_IMG.$dest)) {
    109                 spip_log("Erreur rename", 'hash'. _LOG_ERREUR);
     111                spip_log("erreur hasher_deplacer_document rename", 'hash');
    110112                spip_query('UPDATE spip_documents SET fichier="'.$src.'" WHERE id_document='.$id_document);
    111113                return false;
     
    113115        // on note la destination finale
    114116        if (!spip_query('UPDATE spip_documents SET fichier="'.$img.$dest.'" WHERE id_document='.$id_document)) {
    115                 spip_log("Erreur update 2", 'hash'. _LOG_ERREUR);
     117                spip_log("erreur hasher_deplacer_document update 2", 'hash');
    116118                return false;
    117119        }
     
    131133 */
    132134function hasher_deplacer_n_documents($n, $corriger=false, $rev=false) {
    133         spip_log("hasher_deplacer_n_documents n $n corriger $corriger", 'hash'. _LOG_INFO);
     135        $docs = array();
     136        static $dejafait = false;
     137
     138        // Une seule fois par hit (cas de l'insertion de plusieurs docs venant d'un zip)
     139        if ($dejafait) return $docs ;
     140        $dejafait = true;
     141
    134142        if (!$n = intval($n)
    135143        OR !$s = spip_query($q = "SELECT id_document FROM spip_documents WHERE fichier REGEXP '^(IMG/)?[^/]+/"
    136144        . ($rev ? "./././" : "")
    137145        ."[^/]+$' AND distant='non' ORDER BY date DESC LIMIT $n")) {
    138                 spip_log("Erreur requete $q", 'hash'. _LOG_ERREUR);
     146                spip_log("erreur hasher_deplacer_n_documents requete $q", 'hash');
    139147                return false;
    140148        }
    141149
    142         $docs = array();
    143150        while ($t = spip_fetch_array($s)) {
    144151                $id_document = $t['id_document'];
     
    154161 */
    155162function hasher_compter_documents() {
     163
    156164        $s = spip_query($q = "SELECT COUNT(*) FROM spip_documents WHERE fichier REGEXP '^(IMG/)?[^/]+/"
    157165        ."[^/]+$' AND distant='non'");
  • _plugins_/hash_documents/trunk/paquet.xml

    r63202 r66068  
    22        prefix="hasher"
    33        categorie="performance"
    4         version="2.0.0"
     4        version="2.0.1"
    55        etat="test"
    66        compatibilite="[3.0.0;3.0.99]"
Note: See TracChangeset for help on using the changeset viewer.