Valider be8edb6a rédigé par cedric@yterium.com's avatar cedric@yterium.com
Parcourir les fichiers

Respect de la cadence :

- si on veut un envoi toutes les 77s et que l'on programme un cron tous les 77s il est en fait executé en moyenne toutes les 77s+delta ce qui ralentit l'envoi
    - on programme toutes les periode-15s en comptant environ 15s de delta moyen
    - a chaque occurence on corrige le nombre envoye par le ratio de la periode visee/periode effective
    
 Par contre relancer en fin de hit une tache pour finir l'envoi si on a pas tout envoye dans le hit (smtp lent) provoque des envois concurrents et en l'etat des doubles envois au meme destinataire. On desactive donc cette feature (mais on garde le log) en attendant de le faire bien.
parent b2be2a31
Chargement en cours
Chargement en cours
Chargement en cours
Chargement en cours
+15 −0
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -14,6 +14,21 @@ function genie_mailshot_bulksend_dist($t){

		include_spip('inc/mailshot');
		list($periode,$nb) = mailshot_cadence();

		// corriger par le nombre que l'on envoi
		// par le ratio de delta de time effectif depuis le dernier cron
		// sur la periode visee
		$f = _DIR_TMP."bulksend_last.txt";
		$now = time();
		lire_fichier($f,$last);
		if ($last=intval($last)
		  AND ($dt = $now-$last)>0){
			$c = min(2,$dt/$periode);
			$nb = intval(round($nb*$c,0));
			spip_log("Correction sur nb : $c ($dt au lieu de $periode) => $nb","mailshot");
		}
		ecrire_fichier($f,$now);

		$boost = (lire_config("mailshot/boost_send")=='oui'?true:false);
		mailshot_envoyer_un_lot_par_morceaux($nb,!$boost);
		// dire qu'on a pas fini si mode boost pour se relancer aussi vite que possible
+2 −1
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -39,6 +39,7 @@ function mailshot_cadence(){
		}
	}

	spip_log("cadence:".implode(",",$cadence),"mailshot");
	return $cadence;
}

@@ -82,7 +83,7 @@ function mailshot_envoyer_un_lot_par_morceaux($nb_max,$exact=true){
	$nb = mailshot_envoyer_lot($nb_max);
	if ($nb<$nb_max AND $exact){
		spip_log("envoi lot par morceau : $nb/$nb_max on relance","mailshot"._LOG_INFO_IMPORTANTE);
		job_queue_add("mailshot_envoyer_un_lot_par_morceaux","Newsletter",array($nb_max-$nb),"inc/mailshot");
		#job_queue_add("mailshot_envoyer_un_lot_par_morceaux","Newsletter",array($nb_max-$nb),"inc/mailshot");
	}
	return $nb;
}
+1 −1
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -19,7 +19,7 @@ function mailshot_taches_generales_cron($taches_generales){
	if (isset($GLOBALS['meta']['mailshot_processing'])){
		include_spip('inc/mailshot');
		list($periode,$nb) = mailshot_cadence();
		$taches_generales['mailshot_bulksend'] = $periode;
		$taches_generales['mailshot_bulksend'] = max(60,$periode-15);
	}

	return $taches_generales;
+1 −1
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
<paquet
	prefix="mailshot"
	categorie="communication"
	version="1.5.5"
	version="1.5.6"
	etat="stable"
	compatibilite="[3.0.5;3.0.*]"
	logo="prive/themes/spip/images/mailshot-32.png"