Add post notification logging

[MAILPOET-1536]
This commit is contained in:
Pavel Dohnal
2018-10-01 14:39:49 +02:00
parent b0f5b4cfe9
commit e4db455a47
4 changed files with 57 additions and 0 deletions

View File

@ -4,6 +4,7 @@ namespace MailPoet\Cron\Workers;
use Carbon\Carbon;
use MailPoet\Cron\CronHelper;
use MailPoet\Logging\Logger;
use MailPoet\Models\Newsletter;
use MailPoet\Models\ScheduledTask;
use MailPoet\Models\Segment;
@ -75,9 +76,17 @@ class Scheduler {
}
function processPostNotificationNewsletter($newsletter, $queue) {
Logger::getLogger('post-notifications')->addInfo(
'process post notification in scheduler',
['newsletter_id' => $newsletter->id, 'task_id' => $queue->task_id]
);
// ensure that segments exist
$segments = $newsletter->segments()->findArray();
if(empty($segments)) {
Logger::getLogger('post-notifications')->addInfo(
'post notification no segments',
['newsletter_id' => $newsletter->id, 'task_id' => $queue->task_id]
);
return $this->deleteQueueOrUpdateNextRunDate($queue, $newsletter);
}
@ -87,6 +96,10 @@ class Scheduler {
$subscribers_count = $finder->addSubscribersToTaskFromSegments($queue->task(), $segments);
if(empty($subscribers_count)) {
Logger::getLogger('post-notifications')->addInfo(
'post notification no subscribers',
['newsletter_id' => $newsletter->id, 'task_id' => $queue->task_id]
);
return $this->deleteQueueOrUpdateNextRunDate($queue, $newsletter);
}
@ -100,6 +113,10 @@ class Scheduler {
$queue->save();
// update notification status
$notification_history->setStatus(Newsletter::STATUS_SENDING);
Logger::getLogger('post-notifications')->addInfo(
'post notification set status to sending',
['newsletter_id' => $newsletter->id, 'task_id' => $queue->task_id]
);
return true;
}

View File

@ -5,6 +5,7 @@ use MailPoet\Cron\CronHelper;
use MailPoet\Cron\Workers\SendingQueue\Tasks\Links;
use MailPoet\Cron\Workers\SendingQueue\Tasks\Mailer as MailerTask;
use MailPoet\Cron\Workers\SendingQueue\Tasks\Newsletter as NewsletterTask;
use MailPoet\Logging\Logger;
use MailPoet\Mailer\MailerError;
use MailPoet\Mailer\MailerLog;
use MailPoet\Models\ScheduledTask as ScheduledTaskModel;
@ -48,6 +49,10 @@ class SendingQueue {
// pre-process newsletter (render, replace shortcodes/links, etc.)
$newsletter = $this->newsletter_task->preProcessNewsletter($newsletter, $queue);
if(!$newsletter) {
Logger::getLogger('newsletters')->addInfo(
'delete task in sending queue',
['newsletter_id' => $newsletter->id(), 'task_id' => $queue->task_id]
);
$queue->delete();
continue;
}

View File

@ -1,6 +1,7 @@
<?php
namespace MailPoet\Newsletter;
use MailPoet\Logging\Logger;
use MailPoet\Newsletter\Editor\Transformer;
if(!defined('ABSPATH')) exit;
@ -29,6 +30,10 @@ class AutomatedLatestContent {
}
function getPosts($args, $posts_to_exclude = array()) {
Logger::getLogger('post-notifications')->addInfo(
'loading automated latest content',
['args' => $args, 'posts_to_exclude' => $posts_to_exclude, 'newsletter_id' => $this->newsletter_id, 'newer_than_timestamp' => $this->newer_than_timestamp]
);
$posts_per_page = (!empty($args['amount']) && (int)$args['amount'] > 0)
? (int)$args['amount']
: self::DEFAULT_POSTS_PER_PAGE;
@ -70,7 +75,14 @@ class AutomatedLatestContent {
}
$this->_attachSentPostsFilter();
Logger::getLogger('post-notifications')->addInfo(
'getting automated latest content',
['parameters' => $parameters]
);
$posts = get_posts($parameters);
$this->logPosts($posts);
$this->_detachSentPostsFilter();
return $posts;
}
@ -126,4 +138,18 @@ class AutomatedLatestContent {
remove_action('posts_where', array($this, 'filterOutSentPosts'));
}
}
private function logPosts(array $posts) {
$posts_to_log = [];
foreach($posts as $post) {
$posts_to_log[] = [
'id' => $post->ID,
'post_date' => $post->post_date,
];
}
Logger::getLogger('post-notifications')->addInfo(
'automated latest content loaded posts',
['posts' => $posts_to_log]
);
}
}

View File

@ -3,6 +3,7 @@
namespace MailPoet\Newsletter\Scheduler;
use Carbon\Carbon;
use MailPoet\Logging\Logger;
use MailPoet\Models\Newsletter;
use MailPoet\Models\NewsletterOption;
use MailPoet\Models\NewsletterOptionField;
@ -23,6 +24,10 @@ class Scheduler {
const INTERVAL_NTHWEEKDAY = 'nthWeekDay';
static function schedulePostNotification($post_id) {
Logger::getLogger('post-notifications')->addInfo(
'schedule post notification hook',
['post_id' => $post_id]
);
$newsletters = self::getNewsletters(Newsletter::TYPE_NOTIFICATION);
if(!count($newsletters)) return false;
foreach($newsletters as $newsletter) {
@ -143,6 +148,10 @@ class Scheduler {
$sending_task->status = SendingQueue::STATUS_SCHEDULED;
$sending_task->scheduled_at = $next_run_date;
$sending_task->save();
Logger::getLogger('post-notifications')->addInfo(
'schedule post notification',
['sending_task' => $sending_task->id(), 'scheduled_at' => $next_run_date]
);
return $sending_task;
}