Don't load subscriber IDs in memory when preparing tasks from static segments [MAILPOET-903]

This commit is contained in:
stoletniy
2018-02-13 20:36:01 +03:00
parent 4c0f5bb456
commit 84dfa88a1a
5 changed files with 152 additions and 17 deletions

View File

@ -78,16 +78,14 @@ class SendingQueue extends APIEndpoint {
} else {
$segments = $newsletter->segments()->findArray();
$finder = new SubscribersFinder();
$subscribers = $finder->getSubscribersByList($segments);
$subscribers = Helpers::flattenArray($subscribers);
if(!count($subscribers)) {
$subscribers_count = $finder->addSubscribersToTaskFromSegments($queue->task(), $segments);
if(!$subscribers_count) {
return $this->errorResponse(array(
APIError::UNKNOWN => __('There are no subscribers in that list!', 'mailpoet')
));
}
$queue->status = null;
$queue->scheduled_at = null;
$queue->setSubscribers($subscribers);
// set newsletter status
$newsletter->setStatus(Newsletter::STATUS_SENDING);