Skip to content
Extraits de code Groupes Projets
Valider c62fd691 rédigé par Antoine Pitrou's avatar Antoine Pitrou
Parcourir les fichiers

modifs timeout

parent 09e71d6f
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
...@@ -170,7 +170,7 @@ function appliquer_modifs_config() { ...@@ -170,7 +170,7 @@ function appliquer_modifs_config() {
} }
// Activer le moteur : dresser la liste des choses a indexer // Activer le moteur : dresser la liste des choses a indexer
if ($activer_moteur == 'oui') { if ($activer_moteur == 'oui' AND ($activer_moteur != lire_meta("activer_moteur"))) {
include_ecrire('inc_index.php3'); include_ecrire('inc_index.php3');
creer_liste_indexation(); creer_liste_indexation();
} }
...@@ -203,7 +203,7 @@ function appliquer_modifs_config() { ...@@ -203,7 +203,7 @@ function appliquer_modifs_config() {
'creer_preview', 'creer_preview',
'taille_preview', 'taille_preview',
'articles_modif', 'articles_modif',
'activer_sites', 'activer_sites',
'proposer_sites', 'proposer_sites',
'activer_syndic', 'activer_syndic',
...@@ -270,7 +270,6 @@ function appliquer_modifs_config() { ...@@ -270,7 +270,6 @@ function appliquer_modifs_config() {
fin_admin($admin); fin_admin($admin);
} }
if ($purger_skel) { if ($purger_skel) {
$hash = calculer_action_auteur("purger_squelettes"); $hash = calculer_action_auteur("purger_squelettes");
@header ("Location:../spip_cache.php3?purger_squelettes=oui&id_auteur=$connect_id_auteur&hash=$hash&redirect=".urlencode($clean_link->getUrl())); @header ("Location:../spip_cache.php3?purger_squelettes=oui&id_auteur=$connect_id_auteur&hash=$hash&redirect=".urlencode($clean_link->getUrl()));
......
...@@ -71,8 +71,8 @@ function indexer_chaine($texte, $val = 1, $min_long = 3) { ...@@ -71,8 +71,8 @@ function indexer_chaine($texte, $val = 1, $min_long = 3) {
function deja_indexe($type, $id_objet) { function deja_indexe($type, $id_objet) {
$table_index = 'spip_index_'.$type.'s'; $table_index = 'spip_index_'.$type.'s';
$col_id = 'id_'.$type; $col_id = 'id_'.$type;
$query = "SELECT COUNT(*) FROM $table_index WHERE $col_id=$id_objet"; $query = "SELECT $col_id FROM $table_index WHERE $col_id=$id_objet LIMIT 0,1";
list($n) = @spip_fetch_array(@spip_query($query)); $n = @spip_num_rows(@spip_query($query));
return ($n > 0); return ($n > 0);
} }
......
...@@ -154,7 +154,7 @@ function syndic_a_jour($now_id_syndic, $statut = 'off') { ...@@ -154,7 +154,7 @@ function syndic_a_jour($now_id_syndic, $statut = 'off') {
$moderation = 'publie'; // en ligne sans validation $moderation = 'publie'; // en ligne sans validation
// Section critique : n'autoriser qu'une seule syndication simultanee pour un site donne // Section critique : n'autoriser qu'une seule syndication simultanee pour un site donne
if (!timeout("syndication $url_syndic")) return; if (!spip_get_lock("syndication $url_syndic")) return;
include_ecrire("inc_filtres.php3"); include_ecrire("inc_filtres.php3");
spip_query("UPDATE spip_syndic SET syndication='$statut', date_syndic=NOW() WHERE id_syndic='$now_id_syndic'"); spip_query("UPDATE spip_syndic SET syndication='$statut', date_syndic=NOW() WHERE id_syndic='$now_id_syndic'");
......
...@@ -809,7 +809,7 @@ function spip_log($message) { ...@@ -809,7 +809,7 @@ function spip_log($message) {
// Savoir si on peut lancer de gros calculs, et eventuellement poser un lock // Savoir si on peut lancer de gros calculs, et eventuellement poser un lock
// Resultat : true=vas-y ; false=stop // Resultat : true=vas-y ; false=stop
// //
function timeout ($lock=false, $action=true, $connect_mysql=true) { function timeout($lock=false, $action=true, $connect_mysql=true) {
static $ok = true; static $ok = true;
global $db_ok, $dir_ecrire; global $db_ok, $dir_ecrire;
...@@ -822,30 +822,28 @@ function timeout ($lock=false, $action=true, $connect_mysql=true) { ...@@ -822,30 +822,28 @@ function timeout ($lock=false, $action=true, $connect_mysql=true) {
} }
// Ne rien faire ? // Ne rien faire ?
if (!$action) if (!$action || !$ok)
return $ok; return $ok;
$ok = false;
// Base connectee ? // Base connectee ?
if ($connect_mysql) { if ($connect_mysql) {
include_ecrire('inc_connect.php3'); include_ecrire('inc_connect.php3');
if (!$db_ok) if (!$db_ok)
return $ok = false; return false;
// Lock SQL ? // Verrou demande ?
if ($lock) { if ($lock) {
if (spip_get_lock($lock)) { spip_debug("test lock mysql $lock");
// C'est bon if (!spip_get_lock($lock)) {
$ok = false;
return true;
} else {
spip_debug ("lock mysql $lock"); spip_debug ("lock mysql $lock");
return $ok = false; return false;
} }
} }
} }
// C'est bon // C'est bon
$ok = false;
return true; return true;
} }
......
...@@ -455,11 +455,13 @@ if (abs($t_jour - date('d')) > 2) { ...@@ -455,11 +455,13 @@ if (abs($t_jour - date('d')) > 2) {
// //
// Optimisation periodique de la base de donnees // Optimisation periodique de la base de donnees
// //
if (!$bonjour AND timeout('optimisation')) { if (!$bonjour) {
if ($optimiser == 'oui' || (time() - lire_meta('date_optimisation')) > 24 * 3600) { if ($optimiser == 'oui' || (time() - lire_meta('date_optimisation')) > 24 * 3600) {
ecrire_meta("date_optimisation", time()); if (timeout('optimisation')) {
ecrire_metas(); ecrire_meta("date_optimisation", time());
include ("optimiser.php3"); ecrire_metas();
include ("optimiser.php3");
}
} }
} }
......
<?php <?php
@header ("Content-Type: text/css");
@Header ("Expires: ".gmdate("D, d M Y H:i:s", time() + 3600)." GMT");
include ("inc_version.php3"); // pour le register_globals include ("inc_version.php3"); // pour le register_globals
@Header ("Content-Type: text/css");
@Header ("Expires: ".gmdate("D, d M Y H:i:s", time() + 7 * 24 * 3600)." GMT");
@Header ("Last-Modified: ".gmdate("D, d M Y H:i:s", @filemtime("spip_style.php3"))." GMT");
if (!isset($couleur_claire)) if (!isset($couleur_claire))
$couleur_claire = "#EDF3FE"; $couleur_claire = "#EDF3FE";
if (!isset($couleur_foncee)) if (!isset($couleur_foncee))
......
...@@ -52,13 +52,10 @@ function utiliser_cache($chemin_cache, $delais) { ...@@ -52,13 +52,10 @@ function utiliser_cache($chemin_cache, $delais) {
if (file_exists($chemin_cache.'.NEW')) { if (file_exists($chemin_cache.'.NEW')) {
// Deuxieme acces : le fichier est marque comme utilise // Deuxieme acces : le fichier est marque comme utilise
@rename($chemin_cache.'.NEW', $chemin_cache); @rename($chemin_cache.'.NEW', $chemin_cache);
clearstatcache();
}
else {
// Double verification (cas renommage entre les deux file_exists)
clearstatcache();
$use_cache = file_exists($chemin_cache);
} }
// Double verification (cas renommage/suppression entre les deux file_exists)
clearstatcache();
$use_cache = file_exists($chemin_cache);
} }
// Date de creation du fichier // Date de creation du fichier
...@@ -67,7 +64,7 @@ function utiliser_cache($chemin_cache, $delais) { ...@@ -67,7 +64,7 @@ function utiliser_cache($chemin_cache, $delais) {
$age = time() - $t; $age = time() - $t;
$age_ok = (($age < $delais) AND ($age >= 0)); $age_ok = (($age < $delais) AND ($age >= 0));
if (!$age_ok) { // fichier cache trop vieux if (!$age_ok) { // fichier cache trop vieux
if (timeout()) // sauf lock hebergeur ou probleme base if (timeout(false, false)) // sauf lock hebergeur ou probleme base
$use_cache = false; $use_cache = false;
} }
// Inclusions multiples : derniere modification // Inclusions multiples : derniere modification
......
...@@ -372,22 +372,21 @@ if (lire_meta('activer_moteur') == 'oui') { ...@@ -372,22 +372,21 @@ if (lire_meta('activer_moteur') == 'oui') {
} }
} }
} }
if ($use_cache AND file_exists($fichier_index) AND filesize($fichier_index)) { if ($use_cache AND file_exists($fichier_index)) {
if (timeout()) { if (timeout('indexation')) {
include_ecrire("inc_texte.php3"); if ($s = sizeof($suite = file($fichier_index))) {
include_ecrire("inc_filtres.php3"); include_ecrire("inc_texte.php3");
include_ecrire("inc_index.php3"); include_ecrire("inc_filtres.php3");
if ($s = sizeof($suite = file($fichier_index))) include_ecrire("inc_index.php3");
$s = $suite[rand(0,$s)]; $s = $suite[$n = rand(0, $s)];
$pid = @getmypid(); unset($suite[$n]);
$f = fopen($fichier_index.".tmp-$pid", 'w'); $f = fopen($fichier_index, 'wb');
while (list(,$ligne) = each($suite)) fwrite($f, join("", $suite));
if ($ligne <> $s) fclose($f);
fwrite($f, $ligne); $s = explode(' ', trim($s));
fclose($f); indexer_objet($s[0], $s[1], $s[2]);
@rename($fichier_index.".tmp-$pid",$fichier_index); }
$s = explode(' ', trim($s)); else @unlink($fichier_index);
indexer_objet($s[0], $s[1], $s[2]);
} }
} }
} }
...@@ -398,14 +397,16 @@ if (lire_meta('activer_moteur') == 'oui') { ...@@ -398,14 +397,16 @@ if (lire_meta('activer_moteur') == 'oui') {
// //
if ($db_ok AND lire_meta("activer_syndic") != "non") { if ($db_ok AND lire_meta("activer_syndic") != "non") {
include_ecrire("inc_texte.php3"); if (timeout()) {
include_ecrire("inc_filtres.php3"); include_ecrire("inc_texte.php3");
include_ecrire("inc_sites.php3"); include_ecrire("inc_filtres.php3");
include_ecrire("inc_index.php3"); include_ecrire("inc_sites.php3");
include_ecrire("inc_index.php3");
executer_une_syndication();
if (lire_meta('activer_moteur') == 'oui' AND timeout()) executer_une_syndication();
executer_une_indexation_syndic(); if (lire_meta('activer_moteur') == 'oui' AND timeout())
executer_une_indexation_syndic();
}
} }
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter