Skip to content

Commit 72885e8

Browse files
authored
Job status enumeration (#235)
1 parent 5a13e3e commit 72885e8

21 files changed

+48
-179
lines changed

src/Adapter/AdapterInterface.php

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
use BackedEnum;
88
use InvalidArgumentException;
9-
use Yiisoft\Queue\Enum\JobStatus;
9+
use Yiisoft\Queue\JobStatus;
1010
use Yiisoft\Queue\Message\MessageInterface;
1111

1212
interface AdapterInterface
@@ -24,8 +24,6 @@ public function runExisting(callable $handlerCallback): void;
2424
* @param int|string $id ID of a job message.
2525
*
2626
* @throws InvalidArgumentException When there is no such id in the adapter.
27-
*
28-
* @return JobStatus
2927
*/
3028
public function status(string|int $id): JobStatus;
3129

src/Adapter/SynchronousAdapter.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
use BackedEnum;
88
use InvalidArgumentException;
99
use Yiisoft\Queue\ChannelNormalizer;
10-
use Yiisoft\Queue\Enum\JobStatus;
10+
use Yiisoft\Queue\JobStatus;
1111
use Yiisoft\Queue\Message\MessageInterface;
1212
use Yiisoft\Queue\QueueInterface;
1313
use Yiisoft\Queue\Worker\WorkerInterface;
@@ -55,11 +55,11 @@ public function status(string|int $id): JobStatus
5555
}
5656

5757
if ($id < $this->current) {
58-
return JobStatus::done();
58+
return JobStatus::DONE;
5959
}
6060

6161
if (isset($this->messages[$id])) {
62-
return JobStatus::waiting();
62+
return JobStatus::WAITING;
6363
}
6464

6565
throw new InvalidArgumentException('There is no message with the given ID.');

src/Debug/QueueCollector.php

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,9 @@
44

55
namespace Yiisoft\Queue\Debug;
66

7+
use Yiisoft\Queue\JobStatus;
78
use Yiisoft\Yii\Debug\Collector\CollectorTrait;
89
use Yiisoft\Yii\Debug\Collector\SummaryCollectorInterface;
9-
use Yiisoft\Queue\Enum\JobStatus;
1010
use Yiisoft\Queue\Message\MessageInterface;
1111
use Yiisoft\Queue\Middleware\Push\MiddlewarePushInterface;
1212
use Yiisoft\Queue\QueueInterface;
@@ -38,15 +38,9 @@ public function collectStatus(string $id, JobStatus $status): void
3838
return;
3939
}
4040

41-
$statusText = match (true) {
42-
$status->isDone() => 'done',
43-
$status->isReserved() => 'reserved',
44-
$status->isWaiting() => 'waiting',
45-
default => 'unknown'
46-
};
4741
$this->statuses[] = [
4842
'id' => $id,
49-
'status' => $statusText,
43+
'status' => $status->key(),
5044
];
5145
}
5246

src/Debug/QueueDecorator.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
namespace Yiisoft\Queue\Debug;
66

77
use Yiisoft\Queue\Adapter\AdapterInterface;
8-
use Yiisoft\Queue\Enum\JobStatus;
8+
use Yiisoft\Queue\JobStatus;
99
use Yiisoft\Queue\Message\MessageInterface;
1010
use Yiisoft\Queue\Middleware\Push\MiddlewarePushInterface;
1111
use Yiisoft\Queue\QueueInterface;

src/Enum/JobStatus.php

Lines changed: 0 additions & 63 deletions
This file was deleted.

src/JobStatus.php

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
5+
namespace Yiisoft\Queue;
6+
7+
enum JobStatus: int
8+
{
9+
case WAITING = 1;
10+
case RESERVED = 2;
11+
case DONE = 3;
12+
13+
public function key(): string
14+
{
15+
return match ($this) {
16+
self::WAITING => 'waiting',
17+
self::RESERVED => 'reserved',
18+
self::DONE => 'done',
19+
};
20+
}
21+
}

src/Queue.php

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
use Psr\Log\LoggerInterface;
88
use Yiisoft\Queue\Adapter\AdapterInterface;
99
use Yiisoft\Queue\Cli\LoopInterface;
10-
use Yiisoft\Queue\Enum\JobStatus;
1110
use Yiisoft\Queue\Exception\AdapterConfiguration\AdapterNotConfiguredException;
1211
use Yiisoft\Queue\Message\MessageInterface;
1312
use Yiisoft\Queue\Middleware\Push\AdapterPushHandler;

src/QueueInterface.php

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66

77
use InvalidArgumentException;
88
use Yiisoft\Queue\Adapter\AdapterInterface;
9-
use Yiisoft\Queue\Enum\JobStatus;
109
use Yiisoft\Queue\Message\MessageInterface;
1110
use Yiisoft\Queue\Middleware\Push\MiddlewarePushInterface;
1211

stubs/StubAdapter.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
use BackedEnum;
88
use Yiisoft\Queue\Adapter\AdapterInterface;
99
use Yiisoft\Queue\ChannelNormalizer;
10-
use Yiisoft\Queue\Enum\JobStatus;
10+
use Yiisoft\Queue\JobStatus;
1111
use Yiisoft\Queue\Message\MessageInterface;
1212
use Yiisoft\Queue\QueueInterface;
1313

@@ -30,7 +30,7 @@ public function runExisting(callable $handlerCallback): void
3030

3131
public function status(int|string $id): JobStatus
3232
{
33-
return JobStatus::done();
33+
return JobStatus::DONE;
3434
}
3535

3636
public function push(MessageInterface $message): MessageInterface

stubs/StubQueue.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
namespace Yiisoft\Queue\Stubs;
66

77
use Yiisoft\Queue\Adapter\AdapterInterface;
8-
use Yiisoft\Queue\Enum\JobStatus;
8+
use Yiisoft\Queue\JobStatus;
99
use Yiisoft\Queue\Message\MessageInterface;
1010
use Yiisoft\Queue\Middleware\Push\MiddlewarePushInterface;
1111
use Yiisoft\Queue\QueueInterface;
@@ -37,7 +37,7 @@ public function listen(): void
3737

3838
public function status(int|string $id): JobStatus
3939
{
40-
return JobStatus::done();
40+
return JobStatus::DONE;
4141
}
4242

4343
public function getAdapter(): ?AdapterInterface

tests/App/DummyQueue.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
use Exception;
88
use Yiisoft\Queue\Adapter\AdapterInterface;
9-
use Yiisoft\Queue\Enum\JobStatus;
9+
use Yiisoft\Queue\JobStatus;
1010
use Yiisoft\Queue\Message\MessageInterface;
1111
use Yiisoft\Queue\Middleware\Push\MiddlewarePushInterface;
1212
use Yiisoft\Queue\QueueInterface;

tests/App/FakeAdapter.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
use BackedEnum;
88
use Yiisoft\Queue\Adapter\AdapterInterface;
99
use Yiisoft\Queue\ChannelNormalizer;
10-
use Yiisoft\Queue\Enum\JobStatus;
10+
use Yiisoft\Queue\JobStatus;
1111
use Yiisoft\Queue\Message\MessageInterface;
1212

1313
final class FakeAdapter implements AdapterInterface

tests/Benchmark/Support/VoidAdapter.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
use InvalidArgumentException;
99
use RuntimeException;
1010
use Yiisoft\Queue\Adapter\AdapterInterface;
11-
use Yiisoft\Queue\Enum\JobStatus;
11+
use Yiisoft\Queue\JobStatus;
1212
use Yiisoft\Queue\Message\IdEnvelope;
1313
use Yiisoft\Queue\Message\MessageInterface;
1414
use Yiisoft\Queue\Message\MessageSerializerInterface;

tests/Unit/Adapter/SynchronousAdapterTest.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
use PHPUnit\Framework\Attributes\DataProvider;
88
use Yiisoft\Queue\Adapter\SynchronousAdapter;
9-
use Yiisoft\Queue\Enum\JobStatus;
9+
use Yiisoft\Queue\JobStatus;
1010
use Yiisoft\Queue\Message\IdEnvelope;
1111
use Yiisoft\Queue\Message\Message;
1212
use Yiisoft\Queue\QueueInterface;
@@ -35,7 +35,7 @@ public function testNonIntegerId(): void
3535
$id = $envelope->getMetadata()[IdEnvelope::MESSAGE_ID_KEY];
3636

3737
$wrongId = "$id ";
38-
self::assertEquals(JobStatus::waiting(), $queue->status($wrongId));
38+
self::assertSame(JobStatus::WAITING, $queue->status($wrongId));
3939
}
4040

4141
public function testIdSetting(): void

tests/Unit/Debug/QueueCollectorTest.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,10 @@
44

55
namespace Yiisoft\Queue\Tests\Unit\Debug;
66

7+
use Yiisoft\Queue\JobStatus;
78
use Yiisoft\Yii\Debug\Collector\CollectorInterface;
89
use Yiisoft\Yii\Debug\Tests\Shared\AbstractCollectorTestCase;
910
use Yiisoft\Queue\Debug\QueueCollector;
10-
use Yiisoft\Queue\Enum\JobStatus;
1111
use Yiisoft\Queue\Message\Message;
1212
use Yiisoft\Queue\Tests\App\DummyQueue;
1313

@@ -26,7 +26,7 @@ protected function setUp(): void
2626
*/
2727
protected function collectTestData(CollectorInterface $collector): void
2828
{
29-
$collector->collectStatus('12345', JobStatus::done());
29+
$collector->collectStatus('12345', JobStatus::DONE);
3030
$collector->collectPush('chan1', $this->pushMessage);
3131
$collector->collectPush('chan2', $this->pushMessage);
3232
$collector->collectWorkerProcessing(

tests/Unit/Debug/QueueDecoratorTest.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,10 @@
88
use Yiisoft\Queue\Adapter\AdapterInterface;
99
use Yiisoft\Queue\Debug\QueueCollector;
1010
use Yiisoft\Queue\Debug\QueueDecorator;
11+
use Yiisoft\Queue\JobStatus;
1112
use Yiisoft\Queue\Message\MessageInterface;
1213
use Yiisoft\Queue\QueueInterface;
1314
use Yiisoft\Queue\Tests\App\FakeAdapter;
14-
use Yiisoft\Queue\Tests\Unit\Support\TestJobStatus;
1515

1616
class QueueDecoratorTest extends TestCase
1717
{
@@ -34,7 +34,7 @@ public function testWithAdapter(): void
3434
public function testStatus(): void
3535
{
3636
$queue = $this->createMock(QueueInterface::class);
37-
$jobStatus = TestJobStatus::withStatus(1);
37+
$jobStatus = JobStatus::WAITING;
3838
$queue->expects($this->once())->method('status')->willReturn($jobStatus);
3939
$collector = new QueueCollector();
4040
$decorator = new QueueDecorator(

tests/Unit/JobStatusTest.php

Lines changed: 0 additions & 67 deletions
This file was deleted.

tests/Unit/QueueTest.php

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66

77
use Yiisoft\Queue\Cli\SignalLoop;
88
use Yiisoft\Queue\Exception\AdapterConfiguration\AdapterNotConfiguredException;
9+
use Yiisoft\Queue\JobStatus;
910
use Yiisoft\Queue\Message\Message;
1011
use Yiisoft\Queue\Tests\App\FakeAdapter;
1112
use Yiisoft\Queue\Tests\TestCase;
@@ -96,11 +97,11 @@ public function testStatus(): void
9697
$id = $envelope->getMetadata()[IdEnvelope::MESSAGE_ID_KEY];
9798

9899
$status = $queue->status($id);
99-
self::assertTrue($status->isWaiting());
100+
self::assertSame(JobStatus::WAITING, $status);
100101

101102
$queue->run();
102103
$status = $queue->status($id);
103-
self::assertTrue($status->isDone());
104+
self::assertSame(JobStatus::DONE, $status);
104105
}
105106

106107
public function testAdapterNotConfiguredException(): void

0 commit comments

Comments
 (0)