- Moves queue subscriber handling logic to the queu model
This commit is contained in:
@ -41,7 +41,7 @@ class SendingQueue {
|
|||||||
$queue->save();
|
$queue->save();
|
||||||
}
|
}
|
||||||
// get subscribers
|
// get subscribers
|
||||||
$queue->subscribers = SubscribersTask::get($queue->subscribers);
|
$queue->subscribers = $queue->getSubscribers();
|
||||||
foreach(array_chunk($queue->subscribers['to_process'], self::BATCH_SIZE)
|
foreach(array_chunk($queue->subscribers['to_process'], self::BATCH_SIZE)
|
||||||
as $subscribers_to_process_ids
|
as $subscribers_to_process_ids
|
||||||
) {
|
) {
|
||||||
@ -163,7 +163,7 @@ class SendingQueue {
|
|||||||
return SendingQueueModel::orderByDesc('priority')
|
return SendingQueueModel::orderByDesc('priority')
|
||||||
->whereNull('deleted_at')
|
->whereNull('deleted_at')
|
||||||
->whereNull('status')
|
->whereNull('status')
|
||||||
->findResultSet();
|
->findMany();
|
||||||
}
|
}
|
||||||
|
|
||||||
function updateQueue($queue) {
|
function updateQueue($queue) {
|
||||||
@ -183,10 +183,6 @@ class SendingQueue {
|
|||||||
$newsletter->setStatus(NewsletterModel::STATUS_SENT);
|
$newsletter->setStatus(NewsletterModel::STATUS_SENT);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
$subscribers = $queue->subscribers;
|
return $queue->save();
|
||||||
$queue->subscribers = serialize((array) $subscribers);
|
|
||||||
$queue->save();
|
|
||||||
$queue->subscribers = $subscribers;
|
|
||||||
return $queue;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -4,17 +4,6 @@ namespace MailPoet\Cron\Workers\SendingQueue\Tasks;
|
|||||||
if(!defined('ABSPATH')) exit;
|
if(!defined('ABSPATH')) exit;
|
||||||
|
|
||||||
class Subscribers {
|
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(
|
static function updateToProcessList(
|
||||||
array $found_subscribers_ids,
|
array $found_subscribers_ids,
|
||||||
array $subscribers_to_process_ids,
|
array $subscribers_to_process_ids,
|
||||||
|
@ -39,4 +39,35 @@ class SendingQueue extends Model {
|
|||||||
$this->save();
|
$this->save();
|
||||||
return ($this->getErrors() === false && $this->id() > 0);
|
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;
|
||||||
|
}
|
||||||
}
|
}
|
Reference in New Issue
Block a user