15
15
use Cake \Event \EventInterface ;
16
16
use Cake \Event \EventListenerInterface ;
17
17
use Cake \I18n \DateTime ;
18
+ use Cake \Log \Log ;
18
19
use Cake \Log \LogTrait ;
19
20
use Cake \ORM \Locator \LocatorAwareTrait ;
20
21
use Cake \ORM \Table ;
21
22
use Cake \Queue \Job \Message ;
22
23
use Cake \Utility \Hash ;
24
+ use CakeDC \QueueMonitor \Core \DisableTrait ;
23
25
use CakeDC \QueueMonitor \Exception \QueueMonitorException ;
24
26
use CakeDC \QueueMonitor \Model \Status \MessageEvent ;
25
27
use CakeDC \QueueMonitor \Model \Table \LogsTable ;
26
28
use Exception ;
27
29
use Interop \Queue \Message as QueueMessage ;
28
30
use Throwable ;
31
+ use function Cake \I18n \__ ;
29
32
30
33
/**
31
34
* QueueMonitorListener
34
37
*/
35
38
final class QueueMonitorListener implements EventListenerInterface
36
39
{
40
+ use DisableTrait;
37
41
use LocatorAwareTrait;
38
42
use LogTrait;
39
43
@@ -73,6 +77,10 @@ public function implementedEvents(): array
73
77
*/
74
78
public function handleException (EventInterface $ event , ?Message $ message , ?Throwable $ exception = null ): void
75
79
{
80
+ if ($ this ->isDisabled ()) {
81
+ return ;
82
+ }
83
+
76
84
try {
77
85
$ message = $ this ->validateQueueMessage ($ message );
78
86
@@ -103,6 +111,10 @@ public function handleException(EventInterface $event, ?Message $message, ?Throw
103
111
*/
104
112
public function handleMessageEvent (EventInterface $ event , ?Message $ message ): void
105
113
{
114
+ if ($ this ->isDisabled ()) {
115
+ return ;
116
+ }
117
+
106
118
try {
107
119
$ message = $ this ->validateQueueMessage ($ message );
108
120
@@ -122,6 +134,10 @@ public function handleMessageEvent(EventInterface $event, ?Message $message): vo
122
134
*/
123
135
public function handleSeen (EventInterface $ event , ?QueueMessage $ queueMessage ): void
124
136
{
137
+ if ($ this ->isDisabled ()) {
138
+ return ;
139
+ }
140
+
125
141
try {
126
142
$ queueMessage = $ this ->validateInteropQueueMessage ($ queueMessage );
127
143
$ messageBody = json_decode ($ queueMessage ->getBody (), true );
@@ -174,7 +190,9 @@ private function storeEvent(
174
190
'properties ' => $ queueMessage ->getProperties (),
175
191
]);
176
192
177
- $ this ->QueueMonitoringLogs ->saveOrFail ($ queueMonitoringLog );
193
+ if (!$ this ->QueueMonitoringLogs ->save ($ queueMonitoringLog )) {
194
+ Log::warning (__ ('Unable to save queue monitoring log into database ' ));
195
+ }
178
196
}
179
197
180
198
/**
0 commit comments