Example #1
0
 /**
  * Esegue una ricerca fulltext dei volontari all'interno dei comitati
  * specificati, se non specificata una query ritorna un elenco.
  */
 public function esegui()
 {
     global $db;
     $inizio = microtime(true);
     $query = $this->generaQuery();
     $offset = max(($this->pagina - 1) * $this->perPagina, 0);
     $perPagina = (int) $this->perPagina;
     $numQ = $db->prepare("SELECT COUNT(id) {$query}");
     $risQ = $db->prepare("SELECT * {$query} ORDER BY {$this->ordine} LIMIT {$offset}, {$perPagina}");
     $numQ->bindValue(':casella', $this->casella);
     $risQ->bindValue(':casella', $this->casella);
     $numQ->execute();
     $risQ->execute();
     $numQ = $numQ->fetch(PDO::FETCH_NUM);
     $this->totale = (int) $numQ[0];
     $pagine = ceil($this->totale / $this->perPagina);
     if ($pagine == 0) {
         $pagine = 1;
     }
     $this->pagine = $pagine;
     $r = [];
     while ($ris = $risQ->fetch(PDO::FETCH_ASSOC)) {
         $x = new MEmail($ris['id'], $ris);
         $r[] = $x->toJSON($this->direzione == POSTA_USCITA ? false : $this->casella);
     }
     $this->risultati = $r;
     $fine = microtime(true);
     $this->tempo = round($fine - $inizio, 6);
     return true;
 }
Example #2
0
function locked()
{
    return (bool) file_exists(LOCKFILE) && file_get_contents(LOCKFILE);
}
ignoraTransazione();
// Controlla se ci sono sessioni avviate
// e termina ritornando stato 0 (OK)
if (locked()) {
    echo "#{$task}, {$time} ha provato a partire, ma ha trovato un file di lock.\n";
    exit(0);
}
echo "#{$task}, {$time} sta partendo, ha creato un file di lock.\n";
// Imposta flag di esecuzione (non voglio)
lock();
// Ottieni cursore alle prossime email da inviare
$coda = MEmail::inCoda($conf['batch_size']);
$ok = true;
// Per ogni comunicazione in copia
foreach ($coda as $_comunicazione) {
    // 10 minuti per botta!
    set_time_limit(600);
    $time = date('d-m-Y H:i:s');
    try {
        // Tenta l'invio della comunicazione
        if (!($stato = (int) $_comunicazione->invia(function () use($cache, $task, $time, $_comunicazione) {
            echo "#{$task}, {$time} inviato un messaggio per {$_comunicazione}\n";
        }))) {
            echo "#{$task}, {$time}: Invio non riuscito," . " comunicazione {$_comunicazione}" . " (stato {$stato})\n";
        }
    } catch (Errore $e) {
        echo "#{$task}, {$time}: Errore: {$e->messaggio}\n";