- Renames TaskScheduler to CronTrigger and updates relevant code

- Standardizes setting value const naming convention
This commit is contained in:
Vlad
2016-07-21 18:50:09 -04:00
parent ec6559b8be
commit 63bd093f35
9 changed files with 54 additions and 53 deletions

View File

@@ -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);

View File

@@ -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();
} }

View File

@@ -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;
} }
} }

View File

@@ -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
)); ));
} }

View File

@@ -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');
} }
} }

View File

@@ -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) {

View File

@@ -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();
} }
} }

View File

@@ -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'] &&

View File

@@ -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].")