Rename unprocessed status, refactor counting a bit more clearly [MAILPOET-987]
This commit is contained in:
@ -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;
|
||||||
}
|
}
|
||||||
|
@ -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();
|
||||||
}
|
}
|
||||||
|
@ -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
|
||||||
)
|
)
|
||||||
|
@ -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();
|
||||||
}
|
}
|
||||||
|
@ -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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -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();
|
||||||
}
|
}
|
||||||
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user