From 931f04f91a2ab9713f8f2baf7566fbf0f6886da6 Mon Sep 17 00:00:00 2001 From: Tarvo R Date: Thu, 20 Oct 2022 10:30:04 +0300 Subject: [PATCH 1/3] #73 Handle jobs that are not CloudTaskJobs gracefully --- src/CloudTasksServiceProvider.php | 34 ++++++++++++++++++------------- 1 file changed, 20 insertions(+), 14 deletions(-) diff --git a/src/CloudTasksServiceProvider.php b/src/CloudTasksServiceProvider.php index ebe922d..9e008be 100644 --- a/src/CloudTasksServiceProvider.php +++ b/src/CloudTasksServiceProvider.php @@ -150,51 +150,57 @@ private function registerDashboard(): void }); app('events')->listen(JobProcessing::class, function (JobProcessing $event) { - if (!CloudTasks::dashboardEnabled()) { + if (!$event->job instanceof CloudTasksJob) { return; } - if ($event->job instanceof CloudTasksJob) { + if (CloudTasks::dashboardEnabled()) { DashboardService::make()->markAsRunning($event->job->uuid()); } }); app('events')->listen(JobProcessed::class, function (JobProcessed $event) { - data_set($event->job->job, 'internal.processed', true); - - if (!CloudTasks::dashboardEnabled()) { + if (!$event->job instanceof CloudTasksJob) { return; } - if ($event->job instanceof CloudTasksJob) { + data_set($event->job->job, 'internal.processed', true); + + if (CloudTasks::dashboardEnabled()) { DashboardService::make()->markAsSuccessful($event->job->uuid()); } }); app('events')->listen(JobExceptionOccurred::class, function (JobExceptionOccurred $event) { - data_set($event->job->job, 'internal.errored', true); - - if (!CloudTasks::dashboardEnabled()) { + if (!$event->job instanceof CloudTasksJob) { return; } - DashboardService::make()->markAsError($event); + data_set($event->job->job, 'internal.errored', true); + + if (CloudTasks::dashboardEnabled()) { + DashboardService::make()->markAsError($event); + } }); app('events')->listen(JobFailed::class, function ($event) { - if (!CloudTasks::dashboardEnabled()) { + if (!$event->job instanceof CloudTasksJob) { return; } - DashboardService::make()->markAsFailed($event); + if (CloudTasks::dashboardEnabled()) { + DashboardService::make()->markAsFailed($event); + } }); app('events')->listen(JobReleased::class, function (JobReleased $event) { - if (!CloudTasks::dashboardEnabled()) { + if ($event->job instanceof CloudTasksJob) { return; } - DashboardService::make()->markAsReleased($event); + if (CloudTasks::dashboardEnabled()) { + DashboardService::make()->markAsReleased($event); + } }); } } From 74442a684f29e2f6c436dbda8b12a22e9382ff25 Mon Sep 17 00:00:00 2001 From: Marick van Tuil Date: Sat, 22 Oct 2022 12:25:56 +0200 Subject: [PATCH 2/3] Fix event job check --- src/CloudTasksServiceProvider.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/CloudTasksServiceProvider.php b/src/CloudTasksServiceProvider.php index 9e008be..ffe519e 100644 --- a/src/CloudTasksServiceProvider.php +++ b/src/CloudTasksServiceProvider.php @@ -194,7 +194,7 @@ private function registerDashboard(): void }); app('events')->listen(JobReleased::class, function (JobReleased $event) { - if ($event->job instanceof CloudTasksJob) { + if (!$event->job instanceof CloudTasksJob) { return; } From ed3dd750f251a49cbef408233d1355b1e193becc Mon Sep 17 00:00:00 2001 From: Marick van Tuil Date: Sat, 22 Oct 2022 12:26:36 +0200 Subject: [PATCH 3/3] Optimalization: get events dispatcher once --- src/CloudTasksServiceProvider.php | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/src/CloudTasksServiceProvider.php b/src/CloudTasksServiceProvider.php index ffe519e..d22a281 100644 --- a/src/CloudTasksServiceProvider.php +++ b/src/CloudTasksServiceProvider.php @@ -128,7 +128,9 @@ private function registerRoutes(): void private function registerDashboard(): void { - app('events')->listen(TaskCreated::class, function (TaskCreated $event) { + $events = $this->app['events']; + + $events->listen(TaskCreated::class, function (TaskCreated $event) { if (CloudTasks::dashboardDisabled()) { return; } @@ -136,7 +138,7 @@ private function registerDashboard(): void DashboardService::make()->add($event->queue, $event->task); }); - app('events')->listen(JobFailed::class, function (JobFailed $event) { + $events->listen(JobFailed::class, function (JobFailed $event) { if (!$event->job instanceof CloudTasksJob) { return; } @@ -149,7 +151,7 @@ private function registerDashboard(): void ); }); - app('events')->listen(JobProcessing::class, function (JobProcessing $event) { + $events->listen(JobProcessing::class, function (JobProcessing $event) { if (!$event->job instanceof CloudTasksJob) { return; } @@ -159,7 +161,7 @@ private function registerDashboard(): void } }); - app('events')->listen(JobProcessed::class, function (JobProcessed $event) { + $events->listen(JobProcessed::class, function (JobProcessed $event) { if (!$event->job instanceof CloudTasksJob) { return; } @@ -171,7 +173,7 @@ private function registerDashboard(): void } }); - app('events')->listen(JobExceptionOccurred::class, function (JobExceptionOccurred $event) { + $events->listen(JobExceptionOccurred::class, function (JobExceptionOccurred $event) { if (!$event->job instanceof CloudTasksJob) { return; } @@ -183,7 +185,7 @@ private function registerDashboard(): void } }); - app('events')->listen(JobFailed::class, function ($event) { + $events->listen(JobFailed::class, function ($event) { if (!$event->job instanceof CloudTasksJob) { return; } @@ -193,7 +195,7 @@ private function registerDashboard(): void } }); - app('events')->listen(JobReleased::class, function (JobReleased $event) { + $events->listen(JobReleased::class, function (JobReleased $event) { if (!$event->job instanceof CloudTasksJob) { return; }