diff --git a/lib/Cron/Workers/SendingQueue/SendingQueue.php b/lib/Cron/Workers/SendingQueue/SendingQueue.php index 8e825e23bd..435d5abbd8 100644 --- a/lib/Cron/Workers/SendingQueue/SendingQueue.php +++ b/lib/Cron/Workers/SendingQueue/SendingQueue.php @@ -41,7 +41,7 @@ class SendingQueue { $queue->save(); } // get subscribers - $queue->subscribers = SubscribersTask::get($queue->subscribers); + $queue->subscribers = $queue->getSubscribers(); foreach(array_chunk($queue->subscribers['to_process'], self::BATCH_SIZE) as $subscribers_to_process_ids ) { @@ -163,7 +163,7 @@ class SendingQueue { return SendingQueueModel::orderByDesc('priority') ->whereNull('deleted_at') ->whereNull('status') - ->findResultSet(); + ->findMany(); } function updateQueue($queue) { @@ -183,10 +183,6 @@ class SendingQueue { $newsletter->setStatus(NewsletterModel::STATUS_SENT); } } - $subscribers = $queue->subscribers; - $queue->subscribers = serialize((array) $subscribers); - $queue->save(); - $queue->subscribers = $subscribers; - return $queue; + return $queue->save(); } } \ No newline at end of file diff --git a/lib/Cron/Workers/SendingQueue/Tasks/Subscribers.php b/lib/Cron/Workers/SendingQueue/Tasks/Subscribers.php index baa5488eec..76f010aa5e 100644 --- a/lib/Cron/Workers/SendingQueue/Tasks/Subscribers.php +++ b/lib/Cron/Workers/SendingQueue/Tasks/Subscribers.php @@ -4,17 +4,6 @@ namespace MailPoet\Cron\Workers\SendingQueue\Tasks; if(!defined('ABSPATH')) exit; class Subscribers { - static function get($subscribers) { - $subscribers = unserialize($subscribers); - if(empty($subscribers['processed'])) { - $subscribers['processed'] = array(); - } - if(empty($subscribers['failed'])) { - $subscribers['failed'] = array(); - } - return $subscribers; - } - static function updateToProcessList( array $found_subscribers_ids, array $subscribers_to_process_ids, diff --git a/lib/Models/SendingQueue.php b/lib/Models/SendingQueue.php index 1e479d16e8..c900480f01 100644 --- a/lib/Models/SendingQueue.php +++ b/lib/Models/SendingQueue.php @@ -39,4 +39,35 @@ class SendingQueue extends Model { $this->save(); return ($this->getErrors() === false && $this->id() > 0); } + + function save() { + if(!is_serialized($this->subscribers)) { + $this->set('subscribers', serialize($this->subscribers)); + } + parent::save(); + $this->subscribers = $this->getSubscribers(); + return $this; + } + + function getSubscribers() { + if(!is_serialized($this->subscribers)) { + return $this->subscribers; + } + $subscribers = unserialize($this->subscribers); + if(empty($subscribers['processed'])) { + $subscribers['processed'] = array(); + } + if(empty($subscribers['failed'])) { + $subscribers['failed'] = array(); + } + return $subscribers; + } + + function asArray() { + $model = parent::asArray(); + $model['subscribers'] = (is_serialized($this->subscribers)) + ? unserialize($this->subscribers) + : $this->subscribers; + return $model; + } } \ No newline at end of file