From f59b02e05f53104a9ad708ef5e84fa5e016d74e9 Mon Sep 17 00:00:00 2001 From: Cerdic <cedric@yterium.com> Date: Fri, 15 Feb 2013 13:10:55 +0000 Subject: [PATCH] Report de r20125 et r20134 : eviter le lancement concurent de trop de cron sur les serveurs a fort traffic : on touch un fichier lock et on ne relance que lorsqu'il a plus d'une seconde --- ecrire/inc/queue.php | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/ecrire/inc/queue.php b/ecrire/inc/queue.php index 70e5703c4e..079ad94e0b 100644 --- a/ecrire/inc/queue.php +++ b/ecrire/inc/queue.php @@ -505,6 +505,11 @@ function queue_affichage_cron(){ if (queue_sleep_time_to_next_job() OR defined('_DEBUG_BLOCK_QUEUE')) return $texte; + // ne pas relancer si on vient de lancer dans la meme seconde par un hit concurent + if (file_exists($lock=_DIR_TMP."cron.lock") AND !(@filemtime($lock)<$_SERVER['REQUEST_TIME'])) + return $texte; + @touch($lock); + // il y a des taches en attentes $url_cron = generer_url_action('cron','',false,true); @@ -529,7 +534,7 @@ function queue_affichage_cron(){ } } - // ici lancer le cron par un CURL asynchrone si CURL est pr�sent + // ici lancer le cron par un CURL asynchrone si CURL est present if (function_exists("curl_init")){ //setting the curl parameters. $ch = curl_init($url_cron); -- GitLab