Log when processing the queue for corrupt newsletter
[MAILPOET-4983]
This commit is contained in:
@ -239,25 +239,32 @@ class SendingQueue {
|
||||
// reschedule bounce task to run sooner, if needed
|
||||
$this->reScheduleBounceTask();
|
||||
|
||||
$queue = $this->processQueue(
|
||||
$queue,
|
||||
$_newsletter,
|
||||
$foundSubscribers,
|
||||
$timer
|
||||
);
|
||||
$this->loggerFactory->getLogger(LoggerFactory::TOPIC_NEWSLETTERS)->info(
|
||||
'after queue chunk processing',
|
||||
['newsletter_id' => $newsletter->id, 'task_id' => $queue->taskId]
|
||||
);
|
||||
if ($queue->status === ScheduledTaskEntity::STATUS_COMPLETED) {
|
||||
if ($newsletterEntity->getStatus() !== NewsletterEntity::STATUS_CORRUPT) {
|
||||
$queue = $this->processQueue(
|
||||
$queue,
|
||||
$_newsletter,
|
||||
$foundSubscribers,
|
||||
$timer
|
||||
);
|
||||
$this->loggerFactory->getLogger(LoggerFactory::TOPIC_NEWSLETTERS)->info(
|
||||
'completed newsletter sending',
|
||||
'after queue chunk processing',
|
||||
['newsletter_id' => $newsletter->id, 'task_id' => $queue->taskId]
|
||||
);
|
||||
if ($queue->status === ScheduledTaskEntity::STATUS_COMPLETED) {
|
||||
$this->loggerFactory->getLogger(LoggerFactory::TOPIC_NEWSLETTERS)->info(
|
||||
'completed newsletter sending',
|
||||
['newsletter_id' => $newsletter->id, 'task_id' => $queue->taskId]
|
||||
);
|
||||
$this->newsletterTask->markNewsletterAsSent($newsletterEntity, $queue);
|
||||
$this->statsNotificationsScheduler->schedule($newsletterEntity);
|
||||
}
|
||||
$this->enforceSendingAndExecutionLimits($timer);
|
||||
} else {
|
||||
$this->loggerFactory->getLogger(LoggerFactory::TOPIC_NEWSLETTERS)->error(
|
||||
'Can\'t send corrupt newsletter',
|
||||
['newsletter_id' => $newsletter->id, 'task_id' => $queue->taskId]
|
||||
);
|
||||
$this->newsletterTask->markNewsletterAsSent($newsletterEntity, $queue);
|
||||
$this->statsNotificationsScheduler->schedule($newsletterEntity);
|
||||
}
|
||||
$this->enforceSendingAndExecutionLimits($timer);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -3,6 +3,7 @@
|
||||
namespace MailPoet\Newsletter\Renderer;
|
||||
|
||||
use MailPoet\Entities\NewsletterEntity;
|
||||
use MailPoet\Logging\LoggerFactory;
|
||||
use MailPoet\Newsletter\NewslettersRepository;
|
||||
use MailPoet\Newsletter\Renderer\Blocks\AbandonedCartContent;
|
||||
use MailPoet\Newsletter\Renderer\Blocks\AutomatedLatestContentBlock;
|
||||
@ -36,18 +37,23 @@ class Preprocessor {
|
||||
/*** @var NewslettersRepository */
|
||||
private $newslettersRepository;
|
||||
|
||||
/*** @var LoggerFactory */
|
||||
private $loggerFactory;
|
||||
|
||||
public function __construct(
|
||||
AbandonedCartContent $abandonedCartContent,
|
||||
AutomatedLatestContentBlock $automatedLatestContent,
|
||||
ContentPreprocessor $wooCommerceContentPreprocessor,
|
||||
CouponPreProcessor $couponPreProcessor,
|
||||
NewslettersRepository $newslettersRepository
|
||||
NewslettersRepository $newslettersRepository,
|
||||
LoggerFactory $loggerFactory
|
||||
) {
|
||||
$this->abandonedCartContent = $abandonedCartContent;
|
||||
$this->automatedLatestContent = $automatedLatestContent;
|
||||
$this->wooCommerceContentPreprocessor = $wooCommerceContentPreprocessor;
|
||||
$this->couponPreProcessor = $couponPreProcessor;
|
||||
$this->newslettersRepository = $newslettersRepository;
|
||||
$this->loggerFactory = $loggerFactory;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -67,7 +73,11 @@ class Preprocessor {
|
||||
try {
|
||||
$contentBlocks = $this->couponPreProcessor->processCoupons($newsletter, $contentBlocks, $preview);
|
||||
} catch (NewsletterProcessingException $e) {
|
||||
$newsletter->setStatus(NewsletterEntity::STATUS_CORRUPT);
|
||||
$this->loggerFactory->getLogger(LoggerFactory::TOPIC_COUPONS)->error(
|
||||
$e->getMessage(),
|
||||
['newsletter_id' => $newsletter->getId()]
|
||||
);
|
||||
$newsletter->setStatus(NewsletterEntity::STATUS_CORRUPT);
|
||||
$this->newslettersRepository->persist($newsletter);
|
||||
$this->newslettersRepository->flush();
|
||||
}
|
||||
|
@ -40,7 +40,7 @@ class CouponPreProcessor {
|
||||
|
||||
if (!$this->wcHelper->isWooCommerceActive()) {
|
||||
$this->loggerFactory->getLogger(LoggerFactory::TOPIC_COUPONS)->error(
|
||||
'Woocommerce is not active', ['WC Coupons', 'Process coupons']
|
||||
'Woocommerce is not active', ['WC Coupons', 'Process coupons', 'newsletter_id']
|
||||
);
|
||||
return $blocks;
|
||||
}
|
||||
|
@ -5,6 +5,7 @@ namespace MailPoet\WooCommerce\TransactionalEmails;
|
||||
use Codeception\Stub;
|
||||
use MailPoet\Config\ServicesChecker;
|
||||
use MailPoet\Entities\NewsletterEntity;
|
||||
use MailPoet\Logging\LoggerFactory;
|
||||
use MailPoet\Models\Newsletter;
|
||||
use MailPoet\Newsletter\Editor\LayoutHelper as L;
|
||||
use MailPoet\Newsletter\NewslettersRepository;
|
||||
@ -111,7 +112,8 @@ class RendererTest extends \MailPoetTest {
|
||||
$this->diContainer->get(\MailPoet\Newsletter\Renderer\Blocks\AutomatedLatestContentBlock::class),
|
||||
$wooPreprocessor,
|
||||
$this->diContainer->get(\MailPoet\WooCommerce\CouponPreProcessor::class),
|
||||
$this->diContainer->get(NewslettersRepository::class)
|
||||
$this->diContainer->get(NewslettersRepository::class),
|
||||
$this->diContainer->get(LoggerFactory::class)
|
||||
),
|
||||
$this->diContainer->get(\MailPoetVendor\CSS::class),
|
||||
$this->diContainer->get(ServicesChecker::class),
|
||||
|
@ -4,6 +4,7 @@ namespace MailPoet\Test\Newsletter;
|
||||
|
||||
use Codeception\Stub;
|
||||
use MailPoet\Entities\NewsletterEntity;
|
||||
use MailPoet\Logging\LoggerFactory;
|
||||
use MailPoet\Newsletter\NewslettersRepository;
|
||||
use MailPoet\Newsletter\Renderer\Blocks\AbandonedCartContent;
|
||||
use MailPoet\Newsletter\Renderer\Blocks\AutomatedLatestContentBlock;
|
||||
@ -24,7 +25,15 @@ class PreprocessorTest extends \MailPoetUnitTest {
|
||||
]);
|
||||
$wooPreprocessor = new TransactionalEmails\ContentPreprocessor($transactionalEmails);
|
||||
$newsletterRepository = Stub::make(NewslettersRepository::class);
|
||||
$preprocessor = new Preprocessor($acc, $alc, $wooPreprocessor, $couponPreProcessor, $newsletterRepository);
|
||||
$loggerFactory = Stub::make(LoggerFactory::class);
|
||||
$preprocessor = new Preprocessor(
|
||||
$acc,
|
||||
$alc,
|
||||
$wooPreprocessor,
|
||||
$couponPreProcessor,
|
||||
$newsletterRepository,
|
||||
$loggerFactory
|
||||
);
|
||||
expect($preprocessor->processBlock(new NewsletterEntity(), ['type' => 'woocommerceHeading']))->equals([[
|
||||
'type' => 'container',
|
||||
'orientation' => 'horizontal',
|
||||
@ -53,7 +62,15 @@ class PreprocessorTest extends \MailPoetUnitTest {
|
||||
$couponPreProcessor = Stub::make(CouponPreProcessor::class);
|
||||
$wooPreprocessor = new TransactionalEmails\ContentPreprocessor(Stub::make(TransactionalEmails::class));
|
||||
$newsletterRepository = Stub::make(NewslettersRepository::class);
|
||||
$preprocessor = new Preprocessor($acc, $alc, $wooPreprocessor, $couponPreProcessor, $newsletterRepository);
|
||||
$loggerFactory = Stub::make(LoggerFactory::class);
|
||||
$preprocessor = new Preprocessor(
|
||||
$acc,
|
||||
$alc,
|
||||
$wooPreprocessor,
|
||||
$couponPreProcessor,
|
||||
$newsletterRepository,
|
||||
$loggerFactory
|
||||
);
|
||||
expect($preprocessor->processBlock(new NewsletterEntity(), ['type' => 'woocommerceContent']))->equals([[
|
||||
'type' => 'container',
|
||||
'orientation' => 'horizontal',
|
||||
|
Reference in New Issue
Block a user