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