Changeset 75286 in spip-zone


Ignore:
Timestamp:
Sep 5, 2013, 3:02:55 PM (6 years ago)
Author:
cedric@…
Message:

une fonction intermediaire qui se charge de se relancer (via job_queue) si on a pas reussi a envoyer le nombre de mails demande dans ce hit. Devrait permettre de respecter la cadence demandee, et non de se retrouver tres en dessous.

Location:
_plugins_/mailshot/trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/mailshot/trunk/genie/mailshot_bulksend.php

    r75273 r75286  
    1212        // Rien a faire si la meta n'est pas la
    1313        if (isset($GLOBALS['meta']['mailshot_processing'])){
    14                 // TODO : limiter la cadence en fonction de la config
     14
    1515                include_spip('inc/mailshot');
    1616                list($periode,$nb) = mailshot_cadence();
    17                 $nb_sent = mailshot_envoyer_lot($nb);
     17                $boost = (lire_config("mailshot/boost_send")=='oui'?true:false);
     18                mailshot_envoyer_un_lot_par_morceaux($nb,!$boost);
    1819                // dire qu'on a pas fini si mode boost pour se relancer aussi vite que possible
    19                 if (lire_config("mailshot/boost_send")=='oui')
     20                if ($boost)
    2021                        return -($t-$periode);
    21                 elseif ($nb_sent<$nb){
    22                         // il faudrait lancer un jobpour finir en async l'envoi du nombre exact demande ?
    23                         // pour le moment on log pour voir
    24                         spip_log("envoi incomplet : $nb_sent au lieu de $nb","bulksend"._LOG_INFO_IMPORTANTE);
    25                 }
    2622        }
    2723        return 0;
  • _plugins_/mailshot/trunk/inc/mailshot.php

    r75284 r75286  
    7171}
    7272
     73/**
     74 * Envoyer un lot, y compris en relancant un job si besoin pour finir le nombre demande
     75 * (cas des smtp trop lents)
     76 *
     77 * @param $nb_max
     78 * @param bool $exact
     79 * @return int
     80 */
     81function mailshot_envoyer_un_lot_par_morceaux($nb_max,$exact=true){
     82        $nb = mailshot_envoyer_lot($nb_max);
     83        if ($nb<$nb_max AND $exact){
     84                spip_log("envoi lot par morceau : $nb/$nb_max on relance","bulksend"._LOG_INFO_IMPORTANTE);
     85                job_queue_add("mailshot_envoyer_un_lot_par_morceaux","Newsletter",array($nb_max-$nb),"inc/mailshot");
     86        }
     87        return $nb;
     88}
    7389
    7490/**
     
    8298        $now = $_SERVER['REQUEST_TIME'];
    8399        if (!$now) $now=time();
    84         define('_MAILSHOT_MAX_TIME',$now+25); // 25s maxi
     100        define('_MAILSHOT_MAX_TIME',$now+15); // 15s maxi
    85101        define('_MAILSHOT_MAX_TRY',5); // 5 essais maxis par destinataires
    86102
  • _plugins_/mailshot/trunk/paquet.xml

    r75285 r75286  
    22        prefix="mailshot"
    33        categorie="communication"
    4         version="1.5.4"
     4        version="1.5.5"
    55        etat="stable"
    66        compatibilite="[3.0.5;3.0.*]"
Note: See TracChangeset for help on using the changeset viewer.