HEX
Server: Apache/2.2.15 (CentOS)
System: Linux ip-10-0-2-146.eu-west-1.compute.internal 2.6.32-754.35.1.el6.centos.plus.x86_64 #1 SMP Sat Nov 7 11:33:42 UTC 2020 x86_64
User: root (0)
PHP: 5.6.40
Disabled: NONE
Upload Files
File: /www/exchange0old/exchange/Bin/Queue.php
<?php

class Bin_Queue
{

    protected $db;
    protected $table = 'email_queue';

    public function __construct()
    {
        $this->db = Bin_Db::connect();
        require_once ROOT_FOLDER . 'admin/classes/Model/MEmailLogs.php';
    }

    public function addMail(PHPMailer $mail, $noaInvoiceId = null){
        $this->db->builder()->insert($this->table)
            ->setValue('timestamp',time())
            ->setValue('mail',serialize($mail))
            ->setValue('noa_invoice_id', $this->db->escapeValue($noaInvoiceId))
            ->execute();
    }

    public function processMailQueue($callback,$limit=100){
        $sql = "SELECT * from ".$this->table." LIMIT ".(int)$limit;
        $result = $this->db->query($sql);
        $successArray = array();
        while($row = $result->fetchAssoc()){
            $mail = unserialize($row['mail']);
            if($callback($mail, $row['noa_invoice_id'])==true){
                $successArray[] = $row['id'];
            }
        }
        if($successArray) {
            $sql = "DELETE FROM " . $this->table . " WHERE id in (" . implode(',', $successArray) . ")";
            $this->db->query($sql);
        }
        return count($successArray);
    }
}