Refactor newly added cron workers to use new settings

[MAILPOET-1757]
This commit is contained in:
Rostislav Wolny
2019-01-30 14:18:13 +01:00
parent 5f9aa306c4
commit a12d0ff4bc
6 changed files with 42 additions and 17 deletions

View File

@ -7,6 +7,7 @@ use MailPoet\Models\Newsletter;
use MailPoet\Models\ScheduledTask;
use MailPoet\Models\Setting;
use MailPoet\Models\StatsNotification;
use MailPoet\Settings\SettingsController;
class Scheduler {
@ -16,6 +17,13 @@ class Scheduler {
*/
const HOURS_TO_SEND_AFTER_NEWSLETTER = 24;
/** @var SettingsController */
private $settings;
function __construct(SettingsController $settings) {
$this->settings = $settings;
}
function schedule(Newsletter $newsletter) {
if(!$this->shouldSchedule($newsletter)) {
return false;
@ -47,7 +55,7 @@ class Scheduler {
}
private function isDisabled() {
$settings = Setting::getValue(Worker::SETTINGS_KEY);
$settings = $this->settings->get(Worker::SETTINGS_KEY);
if(!is_array($settings)) {
return true;
}
@ -60,7 +68,7 @@ class Scheduler {
if(empty(trim($settings['address']))) {
return true;
}
if(!(bool)Setting::getValue('tracking.enabled')) {
if(!(bool)$this->settings->get('tracking.enabled')) {
return true;
}
return !(bool)$settings['enabled'];

View File

@ -10,6 +10,7 @@ use MailPoet\Models\Newsletter;
use MailPoet\Models\NewsletterLink;
use MailPoet\Models\ScheduledTask;
use MailPoet\Models\Setting;
use MailPoet\Settings\SettingsController;
use MailPoet\Tasks\Sending;
class Worker {
@ -28,15 +29,19 @@ class Worker {
/** @var \MailPoet\Mailer\Mailer */
private $mailer;
function __construct(Mailer $mailer, Renderer $renderer, $timer = false) {
/** @var SettingsController */
private $settings;
function __construct(Mailer $mailer, Renderer $renderer, SettingsController $settings, $timer = false) {
$this->timer = $timer ?: microtime(true);
$this->renderer = $renderer;
$this->mailer = $mailer;
$this->settings = $settings;
}
/** @throws \Exception */
function process() {
$settings = Setting::getValue(self::SETTINGS_KEY);
$settings = $this->settings->get(self::SETTINGS_KEY);
$this->mailer->sender = $this->mailer->getSenderNameAndAddress($this->constructSenderEmail());
foreach(self::getDueTasks() as $task) {
try {