Subversion Repositories Applications.annuaire

Compare Revisions

Ignore whitespace Rev 506 → Rev 507

/trunk/scripts/doc/annuaire_traitement_mails
1,12 → 1,17
#!/bin/bash
#
# /usr/local/sbin/annuaire_traitement_mails : traitement de l'envoi des mails modérés de l'annuaire
# Aurélien Peronnet [25 septembre 2014]
# Aurélien Peronnet [07 octobre 2014]
#
while true
do
logger "Lancement script annuaire::traitement_mails"
sudo -u telabotap /usr/local/bin/php-cli-52 -f /home/telabotap/www/reseau/annuaire/scripts/cli.php mail -a tous
ENVOI=`sudo -u telabotap /usr/local/bin/php-cli-52 -f /home/telabotap/www/reseau/annuaire/scripts/cli.php mail -a tous`
IFS='--' read -ra RETOUR <<< "$ENVOI"
# logger ne supoorte pas \n donc parsing du retour pour faire un log bien propre
for i in "${RETOUR[@]}"; do
logger "$i"
done
logger "Arret script annuaire::traitement_mails"
sleep 300
done
/trunk/scripts/modules/mail/Mail.php
177,7 → 177,7
private function traiterMailsEnRetard() {
// Les mails a traiter depuis plus de 10 heures sont considérés comme échoués et donc remis à traiter
// (en cas de plantage du script ou du serveur de mail pendant leur traitement)
$requete = "UPDATE annu_donnees_temp SET adt_statut = '".self::STATUT_EN_ECHEC."', adt_date_debut_traitement = NULL ".
$requete = "UPDATE annu_donnees_temp SET adt_statut = '".self::STATUT_EN_ECHEC."' ".
"WHERE adt_statut = '".self::STATUT_EN_TRAITEMENT."' ".
"AND adt_date_debut_traitement < (DATE_SUB(now(), INTERVAL ".self::DELAI_MAX_TRAITEMENT.")) ";
184,12 → 184,18
$maj = $this->bdd->executer($requete);
// echo pour que bash capte la sortie et stocke dans le log
echo 'Gestion des mails en retard '."--";
if($maj !== false) {
$requete = "SELECT * FROM annu_donnees_temp WHERE adt_statut = '".self::STATUT_EN_ECHEC."'";
if($maj !== false && $maj != 0) {
$requete = "SELECT * FROM annu_donnees_temp WHERE adt_statut = '".self::STATUT_EN_ECHEC."' AND adt_date_debut_traitement IS NOT NULL";
$mails_en_echec = $this->bdd->recupererTous($requete);
// echo pour que bash capte la sortie et stocke dans le log
echo 'Avertissement, des mails sont en retard : '.count($mails_en_echec)."--";
$this->avertirModerateurEchecTraitement($mails_en_echec);
// Réinitialisation de la date pour éviter que l'avertissement soit réenvoyé plusieurs fois
$requete = "UPDATE annu_donnees_temp SET adt_date_debut_traitement = NULL ".
"WHERE adt_statut = '".self::STATUT_EN_ECHEC."' ";
$maj = $this->bdd->executer($requete);
}
return $maj;