Merge pull request #442 from mailpoet/sending_subscriber_recalculation

Dynamically updates queue's subscriber count
This commit is contained in:
Tautvidas Sipavičius
2016-04-22 17:03:09 +03:00

View File

@ -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);
}