Skip to content

Commit f440c9e

Browse files
authored
Merge pull request #2 from CakeDC/feature/disable-option
added support for disabling queue monitor commands
2 parents 09820e0 + 510616c commit f440c9e

File tree

4 files changed

+38
-9
lines changed

4 files changed

+38
-9
lines changed

src/Command/NotifyCommand.php

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
use Cake\Console\ConsoleOptionParser;
1919
use Cake\Core\Configure;
2020
use Cake\Log\LogTrait;
21+
use CakeDC\QueueMonitor\Core\DisableTrait;
2122
use CakeDC\QueueMonitor\Service\QueueMonitoringService;
2223
use Exception;
2324

@@ -26,6 +27,7 @@
2627
*/
2728
final class NotifyCommand extends Command
2829
{
30+
use DisableTrait;
2931
use LogTrait;
3032

3133
private const DEFAULT_LONG_JOB_IN_MINUTES = 30;
@@ -61,6 +63,12 @@ public function buildOptionParser(ConsoleOptionParser $parser): ConsoleOptionPar
6163
*/
6264
public function execute(Arguments $args, ConsoleIo $io)
6365
{
66+
if ($this->isDisabled()) {
67+
$this->log('Notification were not sent because Queue Monitor is disabled.');
68+
69+
return self::CODE_SUCCESS;
70+
}
71+
6472
try {
6573
$this->queueMonitoringService->notifyAboutLongRunningJobs(
6674
(int)Configure::read(

src/Command/PurgeCommand.php

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
use Cake\Console\ConsoleOptionParser;
1919
use Cake\Core\Configure;
2020
use Cake\Log\LogTrait;
21+
use CakeDC\QueueMonitor\Core\DisableTrait;
2122
use CakeDC\QueueMonitor\Service\QueueMonitoringService;
2223
use Exception;
2324
use Psr\Log\LogLevel;
@@ -27,6 +28,7 @@
2728
*/
2829
final class PurgeCommand extends Command
2930
{
31+
use DisableTrait;
3032
use LogTrait;
3133

3234
private const DEFAULT_PURGE_DAYS_OLD = 30;
@@ -62,6 +64,12 @@ public function buildOptionParser(ConsoleOptionParser $parser): ConsoleOptionPar
6264
*/
6365
public function execute(Arguments $args, ConsoleIo $io)
6466
{
67+
if ($this->isDisabled()) {
68+
$this->log('Logs were not purged because Queue Monitor is disabled.');
69+
70+
return self::CODE_SUCCESS;
71+
}
72+
6573
$purgeToDate = $this->queueMonitoringService->getPurgeToDate(
6674
(int)Configure::read(
6775
'QueueMonitor.purgeLogsOlderThanDays',

src/Core/DisableTrait.php

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
<?php
2+
declare(strict_types=1);
3+
4+
namespace CakeDC\QueueMonitor\Core;
5+
6+
use Cake\Core\Configure;
7+
8+
/**
9+
* Disable trait
10+
*/
11+
trait DisableTrait
12+
{
13+
/**
14+
* Check if queue monitoring is disabled by configuration
15+
*/
16+
protected function isDisabled(): bool
17+
{
18+
return (bool)Configure::read('QueueMonitor.disabled', false);
19+
}
20+
}

src/Listener/QueueMonitorListener.php

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@
1212
*/
1313
namespace CakeDC\QueueMonitor\Listener;
1414

15-
use Cake\Core\Configure;
1615
use Cake\Event\EventInterface;
1716
use Cake\Event\EventListenerInterface;
1817
use Cake\I18n\FrozenTime;
@@ -22,6 +21,7 @@
2221
use Cake\ORM\Table;
2322
use Cake\Queue\Job\Message;
2423
use Cake\Utility\Hash;
24+
use CakeDC\QueueMonitor\Core\DisableTrait;
2525
use CakeDC\QueueMonitor\Exception\QueueMonitorException;
2626
use CakeDC\QueueMonitor\Model\Status\MessageEvent;
2727
use CakeDC\QueueMonitor\Model\Table\LogsTable;
@@ -36,6 +36,7 @@
3636
*/
3737
final class QueueMonitorListener implements EventListenerInterface
3838
{
39+
use DisableTrait;
3940
use LocatorAwareTrait;
4041
use LogTrait;
4142

@@ -226,12 +227,4 @@ public function validateInteropQueueMessage(?QueueMessage $queueMessage): QueueM
226227

227228
return $queueMessage;
228229
}
229-
230-
/**
231-
* Check if queue monitoring is disabled by configuration
232-
*/
233-
private function isDisabled(): bool
234-
{
235-
return (bool)Configure::read('QueueMonitor.disabled', false);
236-
}
237230
}

0 commit comments

Comments
 (0)