Sending queue refactoring WIP [MAILPOET-903]

This commit is contained in:
stoletniy
2017-12-21 23:50:43 +03:00
parent bf8b0c81df
commit c0c57f6b67
17 changed files with 684 additions and 171 deletions

View File

@ -13,6 +13,10 @@ class Subscribers {
$this->task = $task;
}
function setSubscribers(array $subscriber_ids) {
ScheduledTaskSubscriber::setSubscribers($this->task->id, $subscriber_ids);
}
function getSubscribers() {
return ScheduledTaskSubscriber::where('task_id', $this->task->id);
}
@ -20,17 +24,24 @@ class Subscribers {
function isSubscriberProcessed($subscriber_id) {
$subscriber = $this->getSubscribers()
->where('subscriber_id', $subscriber_id)
->where('processed', ScheduledTaskSubscriber::STATUS_PROCESSED)
->findOne();
return !empty($subscriber);
}
function removeSubscribers($subscribers_to_remove) {
function removeSubscribers(array $subscribers_to_remove) {
$this->getSubscribers()
->whereIn('subscriber_id', $subscribers_to_remove)
->deleteMany();
$this->checkCompleted();
}
function removeAllSubscribers() {
$this->getSubscribers()
->deleteMany();
$this->checkCompleted();
}
function updateProcessedSubscribers(array $processed_subscribers) {
$this->getSubscribers()
->whereIn('subscriber_id', $processed_subscribers)
@ -40,8 +51,8 @@ class Subscribers {
$this->checkCompleted();
}
private function checkCompleted() {
if(!ScheduledTaskSubscriber::getUnprocessedCount($this->task->id)) {
private function checkCompleted($count = null) {
if(!$count && !ScheduledTaskSubscriber::getUnprocessedCount($this->task->id)) {
$this->task->complete();
}
}