[SPIP Zone] [Spip-zone-commit] r32571 - in /_plugins_/fulltext: fulltext_pipelines.php genie/fulltext_index_document.php

En règle général, je suis plutôt opposé aux @ qui masquent les warnings qui pourraient aider à débugguer, mais là je ne suis pas sûr que ce soit si grave, donc je demande... est-ce bien raisonnable de remplacer cela :

if(defined('_FULLTEXT_TAILLE')){
   $size = _FULLTEXT_TAILLE;
} else {
   $size = 50000;
}

Par cela :

@define('_FULLTEXT_TAILLE',50000);

?

Le 1 nov. 2009 à 13:36, cedric@yterium.com a écrit :

Author: cedric@yterium.com
Date: Sun Nov 1 13:36:11 2009
New Revision: 32571

Log:
tache cron toutes les 10min et non toutes les minutes
mais quand il reste des doc a indexer, redemander la main pour etre servi rapidement

A noter qu'il faudrait se brancher sur le pipeline post_edition pour detecter les ajouts et changements de document (plugin mediatheque) qui necessitent de refaire l'extraction
Ce pourrait etre aussi le moment de programmer un job en queue pour extraire ce nouveau document en tache de fond sans avoir a attendre le cron

Modified:
   _plugins_/fulltext/fulltext_pipelines.php
   _plugins_/fulltext/genie/fulltext_index_document.php

Modified: _plugins_/fulltext/fulltext_pipelines.php

--- _plugins_/fulltext/fulltext_pipelines.php (original)
+++ _plugins_/fulltext/fulltext_pipelines.php Sun Nov 1 13:36:11 2009
@@ -4,7 +4,8 @@
*/

function fulltext_taches_generales_cron($taches_generales) {
- $taches_generales['fulltext_index_document'] = 60; // toutes les minutes
+ $taches_generales['fulltext_index_document'] = 600; // toutes les 10 minutes
  return $taches_generales;
}

+?>
\ No newline at end of file

Modified: _plugins_/fulltext/genie/fulltext_index_document.php

--- _plugins_/fulltext/genie/fulltext_index_document.php (original)
+++ _plugins_/fulltext/genie/fulltext_index_document.php Sun Nov 1 13:36:11 2009
@@ -1,14 +1,17 @@
<?php
-function genie_fulltext_index_document_dist() {
- // TODO : rendre paramétrable cette limite de 5 docs par passe
- if ($docLists = sql_select("*", "spip_documents", "extrait = 'non'", "", "maj", "0,5")) {
- while($row = sql_fetch($docLists)) {
+function genie_fulltext_index_document_dist($t) {
+ // Ne retenir que les 50 premiers ko
+ @define('_FULLTEXT_TAILLE',50000);
+
+ $nb_docs = 5;
+ if ($docLists = sql_select("*", "spip_documents", "extrait = 'non'", "", "maj", "0,".intval($nb_docs+1))) {
+ while($nb_docs-- AND $row = sql_fetch($docLists)) {
      $extension = $row['extension'];
      $doc = $row['fichier'];
      spip_log('Indexation de '.$doc, 'extract');
      global $extracteur;
- include_spip('extract/'.$extension);
- if (function_exists($lire = $extracteur[$extension])) {
+ if (include_spip('extract/'.$extension)
+ AND function_exists($lire = $extracteur[$extension])) {
        include_spip('inc/distant');
        include_spip('inc/documents');
        if (!$fichier = copie_locale(get_spip_doc($row['fichier']), 'test')) {
@@ -23,13 +26,7 @@
          spip_log('Echec de l\'extraction de '.$fichier, 'extract');
          sql_updateq("spip_documents", array('contenu' => '', 'extrait' => 'err'), "id_document=".intval($row['id_document']));
        } else {
- // Ne retenir que les 50 premiers ko
- if(defined('_FULLTEXT_TAILLE')){
- $size = _FULLTEXT_TAILLE;
- } else {
- $size = 50000;
- }
- $contenu = substr($contenu, 0, $size);
+ $contenu = substr($contenu, 0, _FULLTEXT_TAILLE);
          // importer le charset
          include_spip('inc/charsets');
          $contenu = importer_charset($contenu, $charset);
@@ -37,6 +34,10 @@
        }
      }
    }
+ if ($row = sql_fetch($docLists)){
+ spip_log("il reste des docs a indexer...");
+ return 0-$t; // il y a encore des docs a indexer
+ }
  }
  return 0;
}

_______________________________________________
Spip-zone-commit@rezo.net - http://listes.rezo.net/mailman/listinfo/spip-zone-commit

-Nicolas

--
Nicolas HOIZEY
Blog : http://www.gasteroprod.com/
Photos : http://flic.kr/nicolas-hoizey/

Le 2 novembre 2009 10:07, Nicolas Hoizey <nicolas@hoizey.com> a écrit :

En règle général, je suis plutôt opposé aux @ qui masquent les warnings qui pourraient aider à débugguer,

Je ne suis pas fan non plus.
L’ecriture propre et condensée serait
if (!defined(‹ _FULLTEXT_TAILLE ›)) define(‹ _FULLTEXT_TAILLE ›,50000);

Cédric

Le 2 nov. 2009 à 11:05, Cédric Morin a écrit :

Le 2 novembre 2009 10:07, Nicolas Hoizey <nicolas@hoizey.com> a écrit :

En règle général, je suis plutôt opposé aux @ qui masquent les warnings qui pourraient aider à débugguer,

Je ne suis pas fan non plus.
L’ecriture propre et condensée serait
if (!defined(‹ _FULLTEXT_TAILLE ›)) define(‹ _FULLTEXT_TAILLE ›,50000);

Oui, c’est vrai que passer par une variable n’est pas forcément nécessaire…

-Nicolas


Nicolas HOIZEY
Blog : http://www.gasteroprod.com/
Photos : http://flic.kr/nicolas-hoizey/