- Renames TaskScheduler to CronTrigger and updates relevant code
- Standardizes setting value const naming convention
This commit is contained in:
@@ -1,8 +1,8 @@
|
|||||||
<?php
|
<?php
|
||||||
namespace MailPoet\API\Endpoints;
|
namespace MailPoet\API\Endpoints;
|
||||||
|
|
||||||
use MailPoet\Config\TaskScheduler;
|
|
||||||
use MailPoet\Cron\CronHelper;
|
use MailPoet\Cron\CronHelper;
|
||||||
|
use MailPoet\Cron\CronTrigger;
|
||||||
use MailPoet\Cron\Supervisor;
|
use MailPoet\Cron\Supervisor;
|
||||||
use MailPoet\Models\Setting;
|
use MailPoet\Models\Setting;
|
||||||
|
|
||||||
@@ -28,12 +28,12 @@ class Cron {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function getStatus() {
|
function getStatus() {
|
||||||
$task_scheduler = TaskScheduler::getCurrentMethod();
|
$task_scheduler = CronTrigger::getCurrentMethod();
|
||||||
$daemon = Setting::getValue(CronHelper::DAEMON_SETTING);
|
$daemon = Setting::getValue(CronHelper::DAEMON_SETTING);
|
||||||
if($daemon) {
|
if($daemon) {
|
||||||
return $daemon;
|
return $daemon;
|
||||||
}
|
}
|
||||||
$status = ($task_scheduler === TaskScheduler::METHOD_WORDPRESS) ?
|
$status = ($task_scheduler === CronTrigger::METHOD_WORDPRESS) ?
|
||||||
'wordpress_task_scheduler_enabled' :
|
'wordpress_task_scheduler_enabled' :
|
||||||
false;
|
false;
|
||||||
return array('status' => $status);
|
return array('status' => $status);
|
||||||
|
@@ -2,7 +2,7 @@
|
|||||||
namespace MailPoet\Config;
|
namespace MailPoet\Config;
|
||||||
|
|
||||||
use MailPoet\Models;
|
use MailPoet\Models;
|
||||||
use MailPoet\Cron\Supervisor;
|
use MailPoet\Cron\CronTrigger;
|
||||||
use MailPoet\Router;
|
use MailPoet\Router;
|
||||||
use MailPoet\API;
|
use MailPoet\API;
|
||||||
use MailPoet\WP\Notice as WPNotice;
|
use MailPoet\WP\Notice as WPNotice;
|
||||||
@@ -107,7 +107,7 @@ class Initializer {
|
|||||||
$this->setupShortcodes();
|
$this->setupShortcodes();
|
||||||
$this->setupHooks();
|
$this->setupHooks();
|
||||||
$this->setupImages();
|
$this->setupImages();
|
||||||
$this->setupTaskScheduler();
|
$this->setupCronTrigger();
|
||||||
|
|
||||||
$this->plugin_initialized = true;
|
$this->plugin_initialized = true;
|
||||||
} catch(\Exception $e) {
|
} catch(\Exception $e) {
|
||||||
@@ -192,8 +192,8 @@ class Initializer {
|
|||||||
$router->init();
|
$router->init();
|
||||||
}
|
}
|
||||||
|
|
||||||
function setupTaskScheduler() {
|
function setupCronTrigger() {
|
||||||
$task_scheduler = new TaskScheduler();
|
$task_scheduler = new CronTrigger();
|
||||||
$task_scheduler->init();
|
$task_scheduler->init();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -1,6 +1,7 @@
|
|||||||
<?php
|
<?php
|
||||||
namespace MailPoet\Config;
|
namespace MailPoet\Config;
|
||||||
|
|
||||||
|
use MailPoet\Cron\CronTrigger;
|
||||||
use MailPoet\Form\Block;
|
use MailPoet\Form\Block;
|
||||||
use MailPoet\Form\Renderer as FormRenderer;
|
use MailPoet\Form\Renderer as FormRenderer;
|
||||||
use MailPoet\Models\CustomField;
|
use MailPoet\Models\CustomField;
|
||||||
@@ -255,7 +256,7 @@ class Menu {
|
|||||||
$data = array(
|
$data = array(
|
||||||
'settings' => $settings,
|
'settings' => $settings,
|
||||||
'segments' => Segment::getPublic()->findArray(),
|
'segments' => Segment::getPublic()->findArray(),
|
||||||
'task_scheduler' => TaskScheduler::getAvailableMethods(),
|
'cron_trigger' => CronTrigger::getAvailableMethods(),
|
||||||
'pages' => Pages::getAll(),
|
'pages' => Pages::getAll(),
|
||||||
'flags' => $flags,
|
'flags' => $flags,
|
||||||
'current_user' => wp_get_current_user(),
|
'current_user' => wp_get_current_user(),
|
||||||
@@ -434,4 +435,4 @@ class Menu {
|
|||||||
? (int)$listing_per_page
|
? (int)$listing_per_page
|
||||||
: Listing\Handler::DEFAULT_LIMIT_PER_PAGE;
|
: Listing\Handler::DEFAULT_LIMIT_PER_PAGE;
|
||||||
}
|
}
|
||||||
}
|
}
|
@@ -10,6 +10,7 @@ use MailPoet\Config\PopulatorData\Templates\PostNotificationsBlank1Column;
|
|||||||
use MailPoet\Config\PopulatorData\Templates\WelcomeBlank1Column;
|
use MailPoet\Config\PopulatorData\Templates\WelcomeBlank1Column;
|
||||||
use MailPoet\Config\PopulatorData\Templates\WelcomeBlank12Column;
|
use MailPoet\Config\PopulatorData\Templates\WelcomeBlank12Column;
|
||||||
use MailPoet\Config\PopulatorData\Templates\SimpleText;
|
use MailPoet\Config\PopulatorData\Templates\SimpleText;
|
||||||
|
use MailPoet\Cron\CronTrigger;
|
||||||
use \MailPoet\Models\Segment;
|
use \MailPoet\Models\Segment;
|
||||||
use \MailPoet\Segments\WP;
|
use \MailPoet\Segments\WP;
|
||||||
use \MailPoet\Models\Setting;
|
use \MailPoet\Models\Setting;
|
||||||
@@ -74,10 +75,10 @@ class Populator {
|
|||||||
private function createDefaultSettings() {
|
private function createDefaultSettings() {
|
||||||
$current_user = wp_get_current_user();
|
$current_user = wp_get_current_user();
|
||||||
|
|
||||||
if(!Setting::getValue('task_scheduler')) {
|
if(!Setting::getValue(CronTrigger::SETTING_VALUE)) {
|
||||||
// disable task scheduler (cron) be default
|
// disable task scheduler (cron) be default
|
||||||
Setting::setValue('task_scheduler', array(
|
Setting::setValue(CronTrigger::SETTING_VALUE, array(
|
||||||
'method' => TaskScheduler::METHOD_WORDPRESS
|
'method' => CronTrigger::METHOD_WORDPRESS
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -1,8 +1,6 @@
|
|||||||
<?php
|
<?php
|
||||||
namespace MailPoet\Config;
|
namespace MailPoet\Cron;
|
||||||
|
|
||||||
use MailPoet\Cron\CronHelper;
|
|
||||||
use MailPoet\Cron\Supervisor;
|
|
||||||
use MailPoet\Cron\Workers\Scheduler as SchedulerWorker;
|
use MailPoet\Cron\Workers\Scheduler as SchedulerWorker;
|
||||||
use MailPoet\Cron\Workers\SendingQueue\SendingQueue as SendingQueueWorker;
|
use MailPoet\Cron\Workers\SendingQueue\SendingQueue as SendingQueueWorker;
|
||||||
use MailPoet\Mailer\MailerLog;
|
use MailPoet\Mailer\MailerLog;
|
||||||
@@ -10,9 +8,10 @@ use MailPoet\Models\Setting;
|
|||||||
|
|
||||||
if(!defined('ABSPATH')) exit;
|
if(!defined('ABSPATH')) exit;
|
||||||
|
|
||||||
class TaskScheduler {
|
class CronTrigger {
|
||||||
const METHOD_WORDPRESS = 'WordPress';
|
const METHOD_WORDPRESS = 'WordPress';
|
||||||
const METHOD_MAILPOET = 'MailPoet';
|
const METHOD_MAILPOET = 'MailPoet';
|
||||||
|
const SETTING_VALUE = 'cron_trigger';
|
||||||
|
|
||||||
function __construct() {
|
function __construct() {
|
||||||
$this->method = self::getCurrentMethod();
|
$this->method = self::getCurrentMethod();
|
||||||
@@ -24,23 +23,23 @@ class TaskScheduler {
|
|||||||
if(php_sapi_name() === 'cli') return;
|
if(php_sapi_name() === 'cli') return;
|
||||||
switch($this->method) {
|
switch($this->method) {
|
||||||
case self::METHOD_MAILPOET:
|
case self::METHOD_MAILPOET:
|
||||||
return $this->configureMailpoetScheduler();
|
return $this->configureMailpoetTrigger();
|
||||||
case self::METHOD_WORDPRESS:
|
case self::METHOD_WORDPRESS:
|
||||||
return $this->configureWordpressScheduler();
|
return $this->configureWordpressTrigger();
|
||||||
default:
|
default:
|
||||||
throw new \Exception(__("Task scheduler is not configured"));
|
throw new \Exception(__('Task scheduler is not configured'));
|
||||||
};
|
};
|
||||||
} catch(\Exception $e) {
|
} catch(\Exception $e) {
|
||||||
// ignore exceptions as they should not prevent the rest of the site from loading
|
// ignore exceptions as they should not prevent the rest of the site from loading
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function configureMailpoetScheduler() {
|
function configureMailpoetTrigger() {
|
||||||
$supervisor = new Supervisor();
|
$supervisor = new Supervisor();
|
||||||
$supervisor->checkDaemon();
|
$supervisor->checkDaemon();
|
||||||
}
|
}
|
||||||
|
|
||||||
function configureWordpressScheduler() {
|
function configureWordpressTrigger() {
|
||||||
$scheduled_queues = SchedulerWorker::getScheduledQueues();
|
$scheduled_queues = SchedulerWorker::getScheduledQueues();
|
||||||
$running_queues = SendingQueueWorker::getRunningQueues();
|
$running_queues = SendingQueueWorker::getRunningQueues();
|
||||||
$sending_limit_reached = MailerLog::isSendingLimitReached();
|
$sending_limit_reached = MailerLog::isSendingLimitReached();
|
||||||
@@ -49,7 +48,7 @@ class TaskScheduler {
|
|||||||
// 2) queues are already being processed
|
// 2) queues are already being processed
|
||||||
// 3) sending limit has not been reached
|
// 3) sending limit has not been reached
|
||||||
if(($scheduled_queues || $running_queues) && !$sending_limit_reached) {
|
if(($scheduled_queues || $running_queues) && !$sending_limit_reached) {
|
||||||
return $this->configureMailpoetScheduler();
|
return $this->configureMailpoetTrigger();
|
||||||
}
|
}
|
||||||
// in all other cases stop (delete) the daemon
|
// in all other cases stop (delete) the daemon
|
||||||
$cron_daemon = CronHelper::getDaemon();
|
$cron_daemon = CronHelper::getDaemon();
|
||||||
@@ -66,6 +65,6 @@ class TaskScheduler {
|
|||||||
}
|
}
|
||||||
|
|
||||||
static function getCurrentMethod() {
|
static function getCurrentMethod() {
|
||||||
return Setting::getValue('task_scheduler.method');
|
return Setting::getValue('cron_trigger.method');
|
||||||
}
|
}
|
||||||
}
|
}
|
@@ -2,10 +2,10 @@
|
|||||||
namespace MailPoet\Cron\Workers\SendingQueue;
|
namespace MailPoet\Cron\Workers\SendingQueue;
|
||||||
|
|
||||||
use MailPoet\Cron\CronHelper;
|
use MailPoet\Cron\CronHelper;
|
||||||
|
use MailPoet\Cron\Workers\SendingQueue\Tasks\Cron;
|
||||||
use MailPoet\Cron\Workers\SendingQueue\Tasks\Mailer as MailerTask;
|
use MailPoet\Cron\Workers\SendingQueue\Tasks\Mailer as MailerTask;
|
||||||
use MailPoet\Cron\Workers\SendingQueue\Tasks\Newsletter as NewsletterTask;
|
use MailPoet\Cron\Workers\SendingQueue\Tasks\Newsletter as NewsletterTask;
|
||||||
use MailPoet\Cron\Workers\SendingQueue\Tasks\Subscribers as SubscribersTask;
|
use MailPoet\Cron\Workers\SendingQueue\Tasks\Subscribers as SubscribersTask;
|
||||||
use MailPoet\Cron\Workers\SendingQueue\Tasks\TaskScheduler as TaskSchedulerTask;
|
|
||||||
use MailPoet\Models\SendingQueue as SendingQueueModel;
|
use MailPoet\Models\SendingQueue as SendingQueueModel;
|
||||||
use MailPoet\Models\StatisticsNewsletters as StatisticsNewslettersModel;
|
use MailPoet\Models\StatisticsNewsletters as StatisticsNewslettersModel;
|
||||||
use MailPoet\Models\Subscriber as SubscriberModel;
|
use MailPoet\Models\Subscriber as SubscriberModel;
|
||||||
@@ -76,7 +76,7 @@ class SendingQueue {
|
|||||||
CronHelper::enforceExecutionLimit($this->timer);
|
CronHelper::enforceExecutionLimit($this->timer);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
TaskSchedulerTask::complete();
|
Cron::complete();
|
||||||
}
|
}
|
||||||
|
|
||||||
function processQueue($queue, $newsletter, $subscribers) {
|
function processQueue($queue, $newsletter, $subscribers) {
|
||||||
|
@@ -1,17 +1,17 @@
|
|||||||
<?php
|
<?php
|
||||||
namespace MailPoet\Cron\Workers\SendingQueue\Tasks;
|
namespace MailPoet\Cron\Workers\SendingQueue\Tasks;
|
||||||
|
|
||||||
use MailPoet\Config\TaskScheduler as TaskSchedulerConfig;
|
|
||||||
use MailPoet\Cron\CronHelper;
|
use MailPoet\Cron\CronHelper;
|
||||||
|
use MailPoet\Cron\CronTrigger;
|
||||||
|
|
||||||
if(!defined('ABSPATH')) exit;
|
if(!defined('ABSPATH')) exit;
|
||||||
|
|
||||||
class TaskScheduler {
|
class Cron {
|
||||||
static function complete() {
|
static function complete() {
|
||||||
// when there are no more queues to process and if the task
|
// when there are no more queues to process and if the task
|
||||||
// scheduler method is WP, delete the cron daemon
|
// scheduler method is WP, delete the cron daemon
|
||||||
$task_scheduler = TaskSchedulerConfig::getCurrentMethod();
|
$task_scheduler = CronTrigger::getCurrentMethod();
|
||||||
if($task_scheduler === TaskSchedulerConfig::METHOD_WORDPRESS) {
|
if($task_scheduler === CronTrigger::METHOD_WORDPRESS) {
|
||||||
CronHelper::deleteDaemon();
|
CronHelper::deleteDaemon();
|
||||||
}
|
}
|
||||||
}
|
}
|
@@ -6,32 +6,32 @@ use MailPoet\Models\Setting;
|
|||||||
if(!defined('ABSPATH')) exit;
|
if(!defined('ABSPATH')) exit;
|
||||||
|
|
||||||
class MailerLog {
|
class MailerLog {
|
||||||
const MAILER_LOG_CONFIG = 'mta_log';
|
const SETTING_VALUE = 'mta_log';
|
||||||
|
|
||||||
static function getMailerLog() {
|
static function getMailerLog() {
|
||||||
$mailer_log = Setting::getValue(self::MAILER_LOG_CONFIG);
|
$mailer_log = Setting::getValue(self::SETTING_VALUE);
|
||||||
if(!$mailer_log) {
|
if(!$mailer_log) {
|
||||||
$mailer_log = self::createOrResetMailerLog();
|
$mailer_log = self::createOrResetMailerLog();
|
||||||
}
|
|
||||||
return $mailer_log;
|
|
||||||
}
|
}
|
||||||
|
return $mailer_log;
|
||||||
|
}
|
||||||
|
|
||||||
static function createOrResetMailerLog() {
|
static function createOrResetMailerLog() {
|
||||||
$mailer_log = array(
|
$mailer_log = array(
|
||||||
'sent' => 0,
|
'sent' => 0,
|
||||||
'started' => time()
|
'started' => time()
|
||||||
);
|
);
|
||||||
Setting::setValue(self::MAILER_LOG_CONFIG, $mailer_log);
|
Setting::setValue(self::SETTING_VALUE, $mailer_log);
|
||||||
return $mailer_log;
|
return $mailer_log;
|
||||||
}
|
}
|
||||||
|
|
||||||
static function updateMailerLog($mailer_log) {
|
static function updateMailerLog($mailer_log) {
|
||||||
Setting::setValue(self::MAILER_LOG_CONFIG, $mailer_log);
|
Setting::setValue(self::SETTING_VALUE, $mailer_log);
|
||||||
return $mailer_log;
|
return $mailer_log;
|
||||||
}
|
}
|
||||||
|
|
||||||
static function isSendingLimitReached() {
|
static function isSendingLimitReached() {
|
||||||
$mailer_config = Mailer::getMailerConfig();
|
$mailer_config = Mailer::getMailerConfig();
|
||||||
$mailer_log = self::getMailerLog();
|
$mailer_log = self::getMailerLog();
|
||||||
$elapsed_time = time() - (int)$mailer_log['started'];
|
$elapsed_time = time() - (int)$mailer_log['started'];
|
||||||
if($mailer_log['sent'] === $mailer_config['frequency_limit'] &&
|
if($mailer_log['sent'] === $mailer_config['frequency_limit'] &&
|
||||||
|
@@ -51,9 +51,9 @@
|
|||||||
<label>
|
<label>
|
||||||
<input
|
<input
|
||||||
type="radio"
|
type="radio"
|
||||||
name="task_scheduler[method]"
|
name="cron_trigger[method]"
|
||||||
value="MailPoet"
|
value="<%= cron_trigger.mailpoet %>"
|
||||||
<% if (settings.task_scheduler.method == 'MailPoet') %>
|
<% if (settings.cron_trigger.method == cron_trigger.mailpoet) %>
|
||||||
checked="checked"
|
checked="checked"
|
||||||
<% endif %>
|
<% endif %>
|
||||||
/><%= __("MailPoet's own script. Doesn't work with [link]these hosts[/link].")
|
/><%= __("MailPoet's own script. Doesn't work with [link]these hosts[/link].")
|
||||||
|
Reference in New Issue
Block a user