Rename unprocessed status, refactor counting a bit more clearly [MAILPOET-987]

This commit is contained in:
stoletniy
2017-07-20 10:56:34 +03:00
parent 6aca598dc3
commit c924778d50
7 changed files with 17 additions and 20 deletions

View File

@ -39,7 +39,7 @@ class Bounce extends SimpleWorker {
function prepareTask(ScheduledTask $task) { function prepareTask(ScheduledTask $task) {
BounceTask::prepareSubscribers($task); BounceTask::prepareSubscribers($task);
if(!ScheduledTaskSubscriber::getToProcessCount($task->id)) { if(!ScheduledTaskSubscriber::getUnprocessedCount($task->id)) {
$task->delete(); $task->delete();
return false; return false;
} }

View File

@ -4,7 +4,7 @@ namespace MailPoet\Models;
if(!defined('ABSPATH')) exit; if(!defined('ABSPATH')) exit;
class ScheduledTaskSubscriber extends Model { class ScheduledTaskSubscriber extends Model {
const STATUS_TO_PROCESS = 0; const STATUS_UNPROCESSED = 0;
const STATUS_PROCESSED = 1; const STATUS_PROCESSED = 1;
public static $_table = MP_SCHEDULED_TASK_SUBSCRIBERS_TABLE; public static $_table = MP_SCHEDULED_TASK_SUBSCRIBERS_TABLE;
@ -21,7 +21,7 @@ class ScheduledTaskSubscriber extends Model {
$task_subscriber->task_id = $data['task_id']; $task_subscriber->task_id = $data['task_id'];
$task_subscriber->subscriber_id = $data['subscriber_id']; $task_subscriber->subscriber_id = $data['subscriber_id'];
$task_subscriber->processed = !empty($data['processed']) ? self::STATUS_PROCESSED : self::STATUS_TO_PROCESS; $task_subscriber->processed = !empty($data['processed']) ? self::STATUS_PROCESSED : self::STATUS_UNPROCESSED;
$task_subscriber->save(); $task_subscriber->save();
return $task_subscriber; return $task_subscriber;
@ -36,12 +36,12 @@ class ScheduledTaskSubscriber extends Model {
} }
} }
static function getToProcessCount($task_id) { static function getUnprocessedCount($task_id) {
return self::getCount($task_id, false); return self::getCount($task_id, self::STATUS_UNPROCESSED);
} }
static function getProcessedCount($task_id) { static function getProcessedCount($task_id) {
return self::getCount($task_id, true); return self::getCount($task_id, self::STATUS_PROCESSED);
} }
static function getTotalCount($task_id) { static function getTotalCount($task_id) {
@ -51,10 +51,7 @@ class ScheduledTaskSubscriber extends Model {
private static function getCount($task_id, $processed = null) { private static function getCount($task_id, $processed = null) {
$orm = self::where('task_id', $task_id); $orm = self::where('task_id', $task_id);
if(!is_null($processed)) { if(!is_null($processed)) {
$orm->where( $orm->where('processed', $processed);
'processed',
($processed) ? self::STATUS_PROCESSED : self::STATUS_TO_PROCESS
);
} }
return $orm->count(); return $orm->count();
} }

View File

@ -19,7 +19,7 @@ class Bounce {
AND s.`status` IN (?, ?)', AND s.`status` IN (?, ?)',
array( array(
$task->id, $task->id,
ScheduledTaskSubscriber::STATUS_TO_PROCESS, ScheduledTaskSubscriber::STATUS_UNPROCESSED,
Subscriber::STATUS_SUBSCRIBED, Subscriber::STATUS_SUBSCRIBED,
Subscriber::STATUS_UNCONFIRMED Subscriber::STATUS_UNCONFIRMED
) )

View File

@ -41,7 +41,7 @@ class Subscribers {
} }
private function checkCompleted() { private function checkCompleted() {
if(!ScheduledTaskSubscriber::getToProcessCount($this->task->id)) { if(!ScheduledTaskSubscriber::getUnprocessedCount($this->task->id)) {
$this->task->processed_at = current_time('mysql'); $this->task->processed_at = current_time('mysql');
return $this->task->complete(); return $this->task->complete();
} }

View File

@ -54,6 +54,6 @@ class BatchIterator implements \Iterator, \Countable {
private function getSubscribers() { private function getSubscribers() {
return ScheduledTaskSubscriber::select('subscriber_id') return ScheduledTaskSubscriber::select('subscriber_id')
->where('task_id', $this->task_id) ->where('task_id', $this->task_id)
->where('processed', ScheduledTaskSubscriber::STATUS_TO_PROCESS); ->where('processed', ScheduledTaskSubscriber::STATUS_UNPROCESSED);
} }
} }

View File

@ -59,10 +59,10 @@ class BounceTest extends MailPoetTest {
function testItPreparesTask() { function testItPreparesTask() {
$task = $this->createScheduledTask(); $task = $this->createScheduledTask();
expect(ScheduledTaskSubscriber::getToProcessCount($task->id))->isEmpty(); expect(ScheduledTaskSubscriber::getUnprocessedCount($task->id))->isEmpty();
$this->worker->prepareTask($task); $this->worker->prepareTask($task);
expect($task->status)->null(); expect($task->status)->null();
expect(ScheduledTaskSubscriber::getToProcessCount($task->id))->notEmpty(); expect(ScheduledTaskSubscriber::getUnprocessedCount($task->id))->notEmpty();
} }
function testItDeletesTaskIfThereAreNoSubscribersToProcessWhenProcessingTask() { function testItDeletesTaskIfThereAreNoSubscribersToProcessWhenProcessingTask() {
@ -77,7 +77,7 @@ class BounceTest extends MailPoetTest {
function testItProcessesTask() { function testItProcessesTask() {
$task = $this->createRunningTask(); $task = $this->createRunningTask();
$this->worker->prepareTask($task); $this->worker->prepareTask($task);
expect(ScheduledTaskSubscriber::getToProcessCount($task->id))->notEmpty(); expect(ScheduledTaskSubscriber::getUnprocessedCount($task->id))->notEmpty();
$this->worker->processTask($task); $this->worker->processTask($task);
expect(ScheduledTaskSubscriber::getProcessedCount($task->id))->notEmpty(); expect(ScheduledTaskSubscriber::getProcessedCount($task->id))->notEmpty();
} }

View File

@ -16,7 +16,7 @@ class ScheduledTaskSubscriberTest extends \MailPoetTest {
function testItCanBeCreated() { function testItCanBeCreated() {
expect($this->task_subscriber->task_id)->equals($this->task_id); expect($this->task_subscriber->task_id)->equals($this->task_id);
expect($this->task_subscriber->subscriber_id)->equals($this->subscriber_id); expect($this->task_subscriber->subscriber_id)->equals($this->subscriber_id);
expect($this->task_subscriber->processed)->equals(ScheduledTaskSubscriber::STATUS_TO_PROCESS); expect($this->task_subscriber->processed)->equals(ScheduledTaskSubscriber::STATUS_UNPROCESSED);
} }
function testItCanBeUpdated() { function testItCanBeUpdated() {
@ -41,12 +41,12 @@ class ScheduledTaskSubscriberTest extends \MailPoetTest {
expect($task_subscribers[2]->subscriber_id)->equals($subscriber_ids[2]); expect($task_subscribers[2]->subscriber_id)->equals($subscriber_ids[2]);
} }
function testItCanGetToProcessCount() { function testItCangetUnprocessedCount() {
$count = ScheduledTaskSubscriber::getToProcessCount($this->task_id); $count = ScheduledTaskSubscriber::getUnprocessedCount($this->task_id);
expect($count)->equals(1); expect($count)->equals(1);
$this->task_subscriber->processed = ScheduledTaskSubscriber::STATUS_PROCESSED; $this->task_subscriber->processed = ScheduledTaskSubscriber::STATUS_PROCESSED;
$this->task_subscriber->save(); $this->task_subscriber->save();
$count = ScheduledTaskSubscriber::getToProcessCount($this->task_id); $count = ScheduledTaskSubscriber::getUnprocessedCount($this->task_id);
expect($count)->equals(0); expect($count)->equals(0);
} }