Merge pull request #442 from mailpoet/sending_subscriber_recalculation
Dynamically updates queue's subscriber count
This commit is contained in:
@ -55,6 +55,17 @@ class SendingQueue {
|
||||
$subscribers_ids) {
|
||||
$subscribers = Subscriber::whereIn('id', $subscribers_ids)
|
||||
->findArray();
|
||||
if (count($subscribers_ids) !== count($subscribers)) {
|
||||
$queue->subscribers->to_process = $this->recalculateSubscriberCount(
|
||||
Helpers::arrayColumn($subscribers, 'id'),
|
||||
$subscribers_ids,
|
||||
$queue->subscribers->to_process
|
||||
);
|
||||
}
|
||||
if (!count($queue->subscribers->to_process)) {
|
||||
$this->updateQueue($queue);
|
||||
continue;
|
||||
}
|
||||
$queue->subscribers = call_user_func_array(
|
||||
array(
|
||||
$this,
|
||||
@ -350,6 +361,12 @@ class SendingQueue {
|
||||
return;
|
||||
}
|
||||
|
||||
function recalculateSubscriberCount(
|
||||
$found_subscriber, $existing_subscribers, $subscribers_to_process) {
|
||||
$subscibers_to_exclude = array_diff($existing_subscribers, $found_subscriber);
|
||||
return array_diff($subscribers_to_process, $subscibers_to_exclude);
|
||||
}
|
||||
|
||||
private function joinObject($object = array()) {
|
||||
return implode($this->divider, $object);
|
||||
}
|
||||
|
Reference in New Issue
Block a user