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: 32571Log:
tache cron toutes les 10min et non toutes les minutes
mais quand il reste des doc a indexer, redemander la main pour etre servi rapidementA 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 cronModified:
_plugins_/fulltext/fulltext_pipelines.php
_plugins_/fulltext/genie/fulltext_index_document.phpModified: _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 fileModified: _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/