1515use Cake \Event \EventInterface ;
1616use Cake \Event \EventListenerInterface ;
1717use Cake \I18n \DateTime ;
18+ use Cake \Log \Log ;
1819use Cake \Log \LogTrait ;
1920use Cake \ORM \Locator \LocatorAwareTrait ;
2021use Cake \ORM \Table ;
2122use Cake \Queue \Job \Message ;
2223use Cake \Utility \Hash ;
24+ use CakeDC \QueueMonitor \Core \DisableTrait ;
2325use CakeDC \QueueMonitor \Exception \QueueMonitorException ;
2426use CakeDC \QueueMonitor \Model \Status \MessageEvent ;
2527use CakeDC \QueueMonitor \Model \Table \LogsTable ;
2628use Exception ;
2729use Interop \Queue \Message as QueueMessage ;
2830use Throwable ;
31+ use function Cake \I18n \__ ;
2932
3033/**
3134 * QueueMonitorListener
3437 */
3538final class QueueMonitorListener implements EventListenerInterface
3639{
40+ use DisableTrait;
3741 use LocatorAwareTrait;
3842 use LogTrait;
3943
@@ -73,6 +77,10 @@ public function implementedEvents(): array
7377 */
7478 public function handleException (EventInterface $ event , ?Message $ message , ?Throwable $ exception = null ): void
7579 {
80+ if ($ this ->isDisabled ()) {
81+ return ;
82+ }
83+
7684 try {
7785 $ message = $ this ->validateQueueMessage ($ message );
7886
@@ -103,6 +111,10 @@ public function handleException(EventInterface $event, ?Message $message, ?Throw
103111 */
104112 public function handleMessageEvent (EventInterface $ event , ?Message $ message ): void
105113 {
114+ if ($ this ->isDisabled ()) {
115+ return ;
116+ }
117+
106118 try {
107119 $ message = $ this ->validateQueueMessage ($ message );
108120
@@ -122,6 +134,10 @@ public function handleMessageEvent(EventInterface $event, ?Message $message): vo
122134 */
123135 public function handleSeen (EventInterface $ event , ?QueueMessage $ queueMessage ): void
124136 {
137+ if ($ this ->isDisabled ()) {
138+ return ;
139+ }
140+
125141 try {
126142 $ queueMessage = $ this ->validateInteropQueueMessage ($ queueMessage );
127143 $ messageBody = json_decode ($ queueMessage ->getBody (), true );
@@ -174,7 +190,9 @@ private function storeEvent(
174190 'properties ' => $ queueMessage ->getProperties (),
175191 ]);
176192
177- $ this ->QueueMonitoringLogs ->saveOrFail ($ queueMonitoringLog );
193+ if (!$ this ->QueueMonitoringLogs ->save ($ queueMonitoringLog )) {
194+ Log::warning (__ ('Unable to save queue monitoring log into database ' ));
195+ }
178196 }
179197
180198 /**
0 commit comments