Refactor Cron to use logger_factory instance

[MAILPOET-2444]
This commit is contained in:
Rostislav Wolny
2019-10-08 11:18:51 +02:00
committed by Jack Kitterhing
parent 9fbaa92c9b
commit e4262b0a6d
8 changed files with 130 additions and 57 deletions

View File

@ -38,7 +38,17 @@ class SendingQueue {
/** @var MetaInfo */
private $mailerMetaInfo;
function __construct(SendingErrorHandler $error_handler, StatsNotificationsScheduler $stats_notifications_scheduler, $timer = false, $mailer_task = false, $newsletter_task = false) {
/** @var LoggerFactory */
private $logger_factory;
function __construct(
SendingErrorHandler $error_handler,
StatsNotificationsScheduler $stats_notifications_scheduler,
LoggerFactory $logger_factory,
$timer = false,
$mailer_task = false,
$newsletter_task = false
) {
$this->error_handler = $error_handler;
$this->stats_notifications_scheduler = $stats_notifications_scheduler;
$this->mailer_task = ($mailer_task) ? $mailer_task : new MailerTask();
@ -47,6 +57,7 @@ class SendingQueue {
$this->mailerMetaInfo = new MetaInfo;
$wp = new WPFunctions;
$this->batch_size = $wp->applyFilters('mailpoet_cron_worker_sending_queue_batch_size', self::BATCH_SIZE);
$this->logger_factory = $logger_factory;
}
function process() {
@ -55,7 +66,7 @@ class SendingQueue {
if (!$queue instanceof SendingTask) continue;
ScheduledTaskModel::touchAllByIds([$queue->task_id]);
LoggerFactory::getLogger('newsletters')->addInfo(
$this->logger_factory->getLogger('newsletters')->addInfo(
'sending queue processing',
['task_id' => $queue->task_id]
);
@ -66,7 +77,7 @@ class SendingQueue {
// pre-process newsletter (render, replace shortcodes/links, etc.)
$newsletter = $this->newsletter_task->preProcessNewsletter($newsletter, $queue);
if (!$newsletter) {
LoggerFactory::getLogger('newsletters')->addInfo(
$this->logger_factory->getLogger('newsletters')->addInfo(
'delete task in sending queue',
['task_id' => $queue->task_id]
);
@ -87,7 +98,7 @@ class SendingQueue {
// get subscribers
$subscriber_batches = new BatchIterator($queue->task_id, $this->batch_size);
foreach ($subscriber_batches as $subscribers_to_process_ids) {
LoggerFactory::getLogger('newsletters')->addInfo(
$this->logger_factory->getLogger('newsletters')->addInfo(
'subscriber batch processing',
['newsletter_id' => $newsletter->id, 'task_id' => $queue->task_id, 'subscriber_batch_count' => count($subscribers_to_process_ids)]
);
@ -118,7 +129,7 @@ class SendingQueue {
continue;
}
}
LoggerFactory::getLogger('newsletters')->addInfo(
$this->logger_factory->getLogger('newsletters')->addInfo(
'before queue chunk processing',
['newsletter_id' => $newsletter->id, 'task_id' => $queue->task_id, 'found_subscribers_count' => count($found_subscribers)]
);
@ -127,12 +138,12 @@ class SendingQueue {
$_newsletter,
$found_subscribers
);
LoggerFactory::getLogger('newsletters')->addInfo(
$this->logger_factory->getLogger('newsletters')->addInfo(
'after queue chunk processing',
['newsletter_id' => $newsletter->id, 'task_id' => $queue->task_id]
);
if ($queue->status === ScheduledTaskModel::STATUS_COMPLETED) {
LoggerFactory::getLogger('newsletters')->addInfo(
$this->logger_factory->getLogger('newsletters')->addInfo(
'completed newsletter sending',
['newsletter_id' => $newsletter->id, 'task_id' => $queue->task_id]
);

View File

@ -26,6 +26,9 @@ class Newsletter {
/** @var PostsTask */
private $posts_task;
/** @var LoggerFactory */
private $logger_factory;
function __construct(WPFunctions $wp = null, PostsTask $posts_task = null) {
$settings = new SettingsController();
$this->tracking_enabled = (boolean)$settings->get('tracking.enabled');
@ -37,6 +40,7 @@ class Newsletter {
$posts_task = new PostsTask;
}
$this->posts_task = $posts_task;
$this->logger_factory = LoggerFactory::getInstance();
}
function getNewsletterFromQueue($queue) {
@ -74,7 +78,7 @@ class Newsletter {
$this->stopNewsletterPreProcessing(sprintf('QUEUE-%d-RENDER', $sending_task->id)) :
$newsletter;
}
LoggerFactory::getLogger('newsletters')->addInfo(
$this->logger_factory->getLogger('newsletters')->addInfo(
'pre-processing newsletter',
['newsletter_id' => $newsletter->id, 'task_id' => $sending_task->task_id]
);
@ -105,7 +109,7 @@ class Newsletter {
$this->posts_task->getAlcPostsCount($rendered_newsletter, $newsletter) === 0
) {
// delete notification history record since it will never be sent
LoggerFactory::getLogger('post-notifications')->addInfo(
$this->logger_factory->getLogger('post-notifications')->addInfo(
'no posts in post notification, deleting it',
['newsletter_id' => $newsletter->id, 'task_id' => $sending_task->task_id]
);

View File

@ -7,11 +7,18 @@ use MailPoet\Models\Newsletter as NewsletterModel;
use MailPoet\Models\NewsletterPost;
class Posts {
/** @var LoggerFactory */
private $logger_factory;
public function __construct() {
$this->logger_factory = LoggerFactory::getInstance();
}
function extractAndSave($rendered_newsletter, $newsletter) {
if ($newsletter->type !== NewsletterModel::TYPE_NOTIFICATION_HISTORY) {
return false;
}
LoggerFactory::getLogger('post-notifications')->addInfo(
$this->logger_factory->getLogger('post-notifications')->addInfo(
'extract and save posts - before',
['newsletter_id' => $newsletter->id]
);
@ -30,7 +37,7 @@ class Posts {
$newsletter_post->post_id = $post_id;
$newsletter_post->save();
}
LoggerFactory::getLogger('post-notifications')->addInfo(
$this->logger_factory->getLogger('post-notifications')->addInfo(
'extract and save posts - after',
['newsletter_id' => $newsletter->id, 'matched_posts_ids' => $matched_posts_ids]
);