mirror of
https://github.com/e107inc/e107.git
synced 2025-08-01 20:30:39 +02:00
Corrected email 'pause' timing on mailout cron job.
This commit is contained in:
@@ -172,18 +172,23 @@ class _system_cron
|
|||||||
|
|
||||||
function procEmailQueue()
|
function procEmailQueue()
|
||||||
{
|
{
|
||||||
//global $pref;
|
|
||||||
|
$sendPerHit = e107::getConfig()->get('mail_workpertick',5);
|
||||||
|
$pauseCount = e107::getConfig()->get('mail_pause',5);
|
||||||
|
$pauseTime = e107::getConfig()->get('mail_pausetime',2);
|
||||||
|
|
||||||
if (CRON_MAIL_DEBUG)
|
if (CRON_MAIL_DEBUG)
|
||||||
{
|
{
|
||||||
$e107 = e107::getInstance();
|
e107::getLog()->e_log_event(10,debug_backtrace(),'DEBUG','CRON Email','Email run started',FALSE,LOG_TO_ROLLING);
|
||||||
$e107->admin_log->e_log_event(10,debug_backtrace(),'DEBUG','CRON Email','Email run started',FALSE,LOG_TO_ROLLING);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
require_once(e_HANDLER.'mail_manager_class.php');
|
require_once(e_HANDLER.'mail_manager_class.php');
|
||||||
$mailManager = new e107MailManager();
|
$mailManager = new e107MailManager();
|
||||||
$mailManager->doEmailTask(varset($pref['mail_workpertick'],5));
|
$mailManager->doEmailTask($sendPerHit,$pauseCount,$pauseTime);
|
||||||
|
|
||||||
if (CRON_MAIL_DEBUG)
|
if (CRON_MAIL_DEBUG)
|
||||||
{
|
{
|
||||||
$e107->admin_log->e_log_event(10,debug_backtrace(),'DEBUG','CRON Email','Email run completed',FALSE,LOG_TO_ROLLING);
|
e107::getLog()->e_log_event(10,debug_backtrace(),'DEBUG','CRON Email','Email run completed',FALSE,LOG_TO_ROLLING);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -123,7 +123,7 @@ class e107MailManager
|
|||||||
const E107_EMAIL_MAX_TRIES = 3; // Maximum number of tries by us (mail server may do more)
|
const E107_EMAIL_MAX_TRIES = 3; // Maximum number of tries by us (mail server may do more)
|
||||||
// - max allowable value is MAIL_STATUS_MAX_ACTIVE - MAIL_STATUS_PENDING
|
// - max allowable value is MAIL_STATUS_MAX_ACTIVE - MAIL_STATUS_PENDING
|
||||||
|
|
||||||
private $debugMode = 1;
|
private $debugMode = false;
|
||||||
protected $e107;
|
protected $e107;
|
||||||
protected $db = NULL; // Use our own database object - this one for reading data
|
protected $db = NULL; // Use our own database object - this one for reading data
|
||||||
protected $db2 = NULL; // Use our own database object - this one for updates
|
protected $db2 = NULL; // Use our own database object - this one for updates
|
||||||
@@ -902,16 +902,26 @@ class e107MailManager
|
|||||||
* Call to do a number of 'units' of email processing - from a cron job, for example
|
* Call to do a number of 'units' of email processing - from a cron job, for example
|
||||||
* Each 'unit' sends one email from the queue - potentially it could do some other task.
|
* Each 'unit' sends one email from the queue - potentially it could do some other task.
|
||||||
* @param $limit - number of units of work to do - zero to clear the queue (or do maximum allowed by a hard-coded limit)
|
* @param $limit - number of units of work to do - zero to clear the queue (or do maximum allowed by a hard-coded limit)
|
||||||
|
* @param $pauseCount - pause after so many emails
|
||||||
|
* @param $pauseTime - time in seconds to pause after 'pauseCount' number of emails.
|
||||||
* @return None
|
* @return None
|
||||||
*/
|
*/
|
||||||
public function doEmailTask($limit = 0)
|
public function doEmailTask($limit = 0, $pauseCount=null, $pauseTime=1)
|
||||||
{
|
{
|
||||||
if ($count = $this->selectEmails($limit))
|
if ($count = $this->selectEmails($limit))
|
||||||
{
|
{
|
||||||
|
$c=1;
|
||||||
while ($count > 0)
|
while ($count > 0)
|
||||||
{
|
{
|
||||||
$this->sendNextEmail();
|
$this->sendNextEmail();
|
||||||
$count--;
|
$count--;
|
||||||
|
|
||||||
|
if(!empty($pauseCount) && ($c === $pauseCount))
|
||||||
|
{
|
||||||
|
sleep($pauseTime);
|
||||||
|
$c=1;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
if ($this->mailer)
|
if ($this->mailer)
|
||||||
{
|
{
|
||||||
|
Reference in New Issue
Block a user