Rotate scheduled tasks
Scheduled tasks should rotate so that they don't block sending when they cannot be send. [MAILPOET-1391]
This commit is contained in:
@@ -5,6 +5,7 @@ namespace MailPoet\Cron\Workers;
|
||||
use Carbon\Carbon;
|
||||
use MailPoet\Cron\CronHelper;
|
||||
use MailPoet\Models\Newsletter;
|
||||
use MailPoet\Models\ScheduledTask;
|
||||
use MailPoet\Models\Subscriber;
|
||||
use MailPoet\Models\SubscriberSegment;
|
||||
use MailPoet\Segments\SubscribersFinder;
|
||||
@@ -29,6 +30,7 @@ class Scheduler {
|
||||
function process() {
|
||||
$scheduled_queues = self::getScheduledQueues();
|
||||
if(!count($scheduled_queues)) return false;
|
||||
$this->updateTasks($scheduled_queues);
|
||||
foreach($scheduled_queues as $i => $queue) {
|
||||
$newsletter = Newsletter::filter('filterWithOptions')
|
||||
->findOne($queue->newsletter_id);
|
||||
@@ -177,6 +179,13 @@ class Scheduler {
|
||||
false;
|
||||
}
|
||||
|
||||
private function updateTasks(array $scheduled_queues) {
|
||||
$ids = array_map(function ($queue) {
|
||||
return $queue->task_id;
|
||||
}, $scheduled_queues);
|
||||
ScheduledTask::touchAllByIds($ids);
|
||||
}
|
||||
|
||||
static function getScheduledQueues() {
|
||||
return SendingTask::getScheduledQueues(self::TASK_BATCH_SIZE);
|
||||
}
|
||||
|
Reference in New Issue
Block a user