Add error log when pausing sending due an error
[MAILPOET-4940]
This commit is contained in:
committed by
Aschepikov
parent
f11aca925f
commit
0bbdf4b47f
@@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
namespace MailPoet\Mailer;
|
namespace MailPoet\Mailer;
|
||||||
|
|
||||||
|
use MailPoet\Logging\LoggerFactory;
|
||||||
use MailPoet\Settings\SettingsController;
|
use MailPoet\Settings\SettingsController;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -173,6 +174,13 @@ class MailerLog {
|
|||||||
$mailerLog = self::setError($mailerLog, $operation, $errorMessage, $errorCode);
|
$mailerLog = self::setError($mailerLog, $operation, $errorMessage, $errorCode);
|
||||||
self::updateMailerLog($mailerLog);
|
self::updateMailerLog($mailerLog);
|
||||||
if ($pauseSending) {
|
if ($pauseSending) {
|
||||||
|
LoggerFactory::getInstance()->getLogger(LoggerFactory::TOPIC_SENDING)->error(
|
||||||
|
'Email sending was paused due an error',
|
||||||
|
[
|
||||||
|
'error_message' => $errorMessage,
|
||||||
|
'error_code' => $errorCode,
|
||||||
|
]
|
||||||
|
);
|
||||||
self::pauseSending($mailerLog);
|
self::pauseSending($mailerLog);
|
||||||
}
|
}
|
||||||
self::enforceExecutionRequirements();
|
self::enforceExecutionRequirements();
|
||||||
@@ -202,6 +210,13 @@ class MailerLog {
|
|||||||
$mailerLog['transactional_email_error_count'] = ($mailerLog['transactional_email_error_count'] ?? 0) + 1;
|
$mailerLog['transactional_email_error_count'] = ($mailerLog['transactional_email_error_count'] ?? 0) + 1;
|
||||||
self::updateMailerLog($mailerLog);
|
self::updateMailerLog($mailerLog);
|
||||||
if ($mailerLog['transactional_email_error_count'] >= self::RETRY_ATTEMPTS_LIMIT) {
|
if ($mailerLog['transactional_email_error_count'] >= self::RETRY_ATTEMPTS_LIMIT) {
|
||||||
|
LoggerFactory::getInstance()->getLogger(LoggerFactory::TOPIC_SENDING)->error(
|
||||||
|
'Email sending was paused due a transactional email error',
|
||||||
|
[
|
||||||
|
'error_message' => $errorMessage,
|
||||||
|
'error_code' => $errorCode,
|
||||||
|
]
|
||||||
|
);
|
||||||
self::pauseSending($mailerLog);
|
self::pauseSending($mailerLog);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
namespace MailPoet\Test\Mailer;
|
namespace MailPoet\Test\Mailer;
|
||||||
|
|
||||||
|
use MailPoet\Entities\LogEntity;
|
||||||
use MailPoet\Mailer\Mailer;
|
use MailPoet\Mailer\Mailer;
|
||||||
use MailPoet\Mailer\MailerError;
|
use MailPoet\Mailer\MailerError;
|
||||||
use MailPoet\Mailer\MailerLog;
|
use MailPoet\Mailer\MailerLog;
|
||||||
@@ -265,6 +266,9 @@ class MailerLogTest extends \MailPoetTest {
|
|||||||
'error_message' => $error,
|
'error_message' => $error,
|
||||||
]
|
]
|
||||||
);
|
);
|
||||||
|
$logs = $this->entityManager->getRepository(LogEntity::class)->findAll();
|
||||||
|
$this->assertInstanceOf(LogEntity::class, $logs[0]);
|
||||||
|
expect($logs[0]->getMessage())->stringContainsString('Email sending was paused due an error');
|
||||||
}
|
}
|
||||||
|
|
||||||
public function testItProcessesTransactionalEmailSendingError() {
|
public function testItProcessesTransactionalEmailSendingError() {
|
||||||
@@ -318,6 +322,9 @@ class MailerLogTest extends \MailPoetTest {
|
|||||||
expect($mailerLog['transactional_email_last_error_at'])->null();
|
expect($mailerLog['transactional_email_last_error_at'])->null();
|
||||||
expect($mailerLog['transactional_email_error_count'])->null();
|
expect($mailerLog['transactional_email_error_count'])->null();
|
||||||
expect(MailerLog::isSendingPaused())->true();
|
expect(MailerLog::isSendingPaused())->true();
|
||||||
|
$logs = $this->entityManager->getRepository(LogEntity::class)->findAll();
|
||||||
|
$this->assertInstanceOf(LogEntity::class, $logs[0]);
|
||||||
|
expect($logs[0]->getMessage())->stringContainsString('Email sending was paused due a transactional email error');
|
||||||
}
|
}
|
||||||
|
|
||||||
public function testItEnforcesSendingLimit() {
|
public function testItEnforcesSendingLimit() {
|
||||||
@@ -448,5 +455,6 @@ class MailerLogTest extends \MailPoetTest {
|
|||||||
|
|
||||||
public function _after() {
|
public function _after() {
|
||||||
$this->diContainer->get(SettingsRepository::class)->truncate();
|
$this->diContainer->get(SettingsRepository::class)->truncate();
|
||||||
|
$this->truncateEntity(LogEntity::class);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user