@@ -22,6 +22,7 @@ public function boot(QueueManager $queue, Router $router): void
2222
2323 $ this ->registerClient ();
2424 $ this ->registerConnector ($ queue );
25+ $ this ->registerConfig ();
2526 $ this ->registerViews ();
2627 $ this ->registerAssets ();
2728 $ this ->registerMigrations ();
@@ -77,28 +78,53 @@ private function registerConnector(QueueManager $queue): void
7778 });
7879 }
7980
81+ private function registerConfig (): void
82+ {
83+ $ this ->publishes ([
84+ __DIR__ . '/../config/cloud-tasks.php ' => config_path ('cloud-tasks.php ' ),
85+ ], ['cloud-tasks ' ]);
86+
87+ $ this ->mergeConfigFrom (__DIR__ . '/../config/cloud-tasks.php ' , 'cloud-tasks ' );
88+ }
89+
8090 private function registerViews (): void
8191 {
92+ if (CloudTasks::monitorDisabled ()) {
93+ return ;
94+ }
95+
8296 $ this ->loadViewsFrom (__DIR__ . '/../views ' , 'cloud-tasks ' );
8397 }
8498
8599 private function registerAssets (): void
86100 {
101+ if (CloudTasks::monitorDisabled ()) {
102+ return ;
103+ }
104+
87105 $ this ->publishes ([
88106 __DIR__ . '/../dashboard/dist ' => public_path ('vendor/cloud-tasks ' ),
89- ], ['cloud-tasks-assets ' ]);
107+ ], ['cloud-tasks ' ]);
90108 }
91109
92110 private function registerMigrations (): void
93111 {
112+ if (CloudTasks::monitorDisabled ()) {
113+ return ;
114+ }
115+
94116 $ this ->loadMigrationsFrom ([
95117 __DIR__ . '/../migrations ' ,
96118 ]);
97119 }
98120
99121 private function registerRoutes (Router $ router ): void
100122 {
101- $ router ->post ('handle-task ' , [TaskHandler::class, 'handle ' ]);
123+ $ router ->post ('handle-task ' , [TaskHandler::class, 'handle ' ])->name ('cloud-tasks.handle-task ' );
124+
125+ if (config ('cloud-tasks.monitor.enabled ' ) === false ) {
126+ return ;
127+ }
102128
103129 $ router ->middleware (Authenticate::class)->group (function () use ($ router ) {
104130 $ router ->get ('cloud-tasks/{view?} ' , function () {
@@ -116,41 +142,61 @@ private function registerRoutes(Router $router): void
116142 'cloud-tasks.index '
117143 );
118144
119- $ router ->get ('cloud-tasks-api/dashboard ' , [CloudTasksApiController::class, 'dashboard ' ]);
120- $ router ->get ('cloud-tasks-api/tasks ' , [CloudTasksApiController::class, 'tasks ' ]);
121- $ router ->get ('cloud-tasks-api/task/{uuid} ' , [CloudTasksApiController::class, 'task ' ]);
145+ $ router ->get ('cloud-tasks-api/dashboard ' , [CloudTasksApiController::class, 'dashboard ' ])-> name ( ' cloud-tasks.api.dashboard ' ) ;
146+ $ router ->get ('cloud-tasks-api/tasks ' , [CloudTasksApiController::class, 'tasks ' ])-> name ( ' cloud-tasks.api.tasks ' ) ;
147+ $ router ->get ('cloud-tasks-api/task/{uuid} ' , [CloudTasksApiController::class, 'task ' ])-> name ( ' cloud-tasks.api.task ' ) ;
122148 });
123149 }
124150
125151 private function registerMonitoring (): void
126152 {
153+ app ('events ' )->listen (JobFailed::class, function (JobFailed $ event ) {
154+ if (!$ event ->job instanceof CloudTasksJob) {
155+ return ;
156+ }
157+
158+ $ config = $ event ->job ->cloudTasksQueue ->config ;
159+
160+ app ('queue.failer ' )->log (
161+ $ config ['connection ' ], $ event ->job ->getQueue () ?: $ config ['queue ' ],
162+ $ event ->job ->getRawBody (), $ event ->exception
163+ );
164+ });
165+
127166 app ('events ' )->listen (JobProcessing::class, function (JobProcessing $ event ) {
167+ if (!CloudTasks::monitorEnabled ()) {
168+ return ;
169+ }
170+
128171 if ($ event ->job instanceof CloudTasksJob) {
129172 MonitoringService::make ()->markAsRunning ($ event ->job ->uuid ());
130173 }
131174 });
132175
133176 app ('events ' )->listen (JobProcessed::class, function (JobProcessed $ event ) {
177+ if (!CloudTasks::monitorEnabled ()) {
178+ return ;
179+ }
180+
134181 if ($ event ->job instanceof CloudTasksJob) {
135182 MonitoringService::make ()->markAsSuccessful ($ event ->job ->uuid ());
136183 }
137184 });
138185
139186 app ('events ' )->listen (JobExceptionOccurred::class, function (JobExceptionOccurred $ event ) {
187+ if (!CloudTasks::monitorEnabled ()) {
188+ return ;
189+ }
190+
140191 MonitoringService::make ()->markAsError ($ event );
141192 });
142193
143194 app ('events ' )->listen (JobFailed::class, function ($ event ) {
144- MonitoringService::make ()->markAsFailed (
145- $ event
146- );
147-
148- $ config = $ event ->job ->cloudTasksQueue ->config ;
195+ if (!CloudTasks::monitorEnabled ()) {
196+ return ;
197+ }
149198
150- app ('queue.failer ' )->log (
151- $ config ['connection ' ], $ event ->job ->getQueue () ?: $ config ['queue ' ],
152- $ event ->job ->getRawBody (), $ event ->exception
153- );
199+ MonitoringService::make ()->markAsFailed ($ event );
154200 });
155201 }
156202}
0 commit comments