From c5defb8629fa8c9a1af108888f544945ea7ba2c9 Mon Sep 17 00:00:00 2001 From: Alf Drollinger Date: Thu, 7 Sep 2023 22:54:06 +0200 Subject: [PATCH 1/2] Create .gitignore --- .gitignore | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..9bea433 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ + +.DS_Store From 2607bb96b7522d46a04e859dc9ec57d60433dc04 Mon Sep 17 00:00:00 2001 From: Alf Drollinger Date: Thu, 14 Sep 2023 10:03:11 +0200 Subject: [PATCH 2/2] Queue control wip --- routes/web.php | 11 +++++ src/Controllers/QueueController.php | 49 +++++++++++++++++++++++ src/FilamentJobManagerServiceProvider.php | 4 +- src/Resources/JobsResource.php | 2 + 4 files changed, 64 insertions(+), 2 deletions(-) create mode 100644 routes/web.php create mode 100644 src/Controllers/QueueController.php diff --git a/routes/web.php b/routes/web.php new file mode 100644 index 0000000..83210f1 --- /dev/null +++ b/routes/web.php @@ -0,0 +1,11 @@ +group(function () { +Route::get('queue/status', [QueueController::class, 'queueStatus']); +Route::get('queue/start', [QueueController::class, 'startQueue']); +Route::get('queue/stop', [QueueController::class, 'stopQueue']); +//}); diff --git a/src/Controllers/QueueController.php b/src/Controllers/QueueController.php new file mode 100644 index 0000000..7fdd982 --- /dev/null +++ b/src/Controllers/QueueController.php @@ -0,0 +1,49 @@ + true]); + + $this->queueStatus(); + } + + public function stopQueue() + { + // Stop the queue worker + // Find the queue worker process ID + // $pidFilePath = storage_path('app/queue_worker.pid'); + $pidFilePath = base_path('storage/app/queue_worker.pid'); + + $pid = file_get_contents($pidFilePath); + + if ($pid) { + posix_kill($pid, SIGTERM); + + // Wait for the process to exit + while (posix_kill($pid, 0)) { + usleep(100000); // Sleep for 0.1 seconds + } + + $this->info("Queue worker with PID $pid has stopped."); + } else { + $this->info('No queue worker process found.'); + } + + $this->queueStatus(); + } +} diff --git a/src/FilamentJobManagerServiceProvider.php b/src/FilamentJobManagerServiceProvider.php index 843be57..d5f7d39 100644 --- a/src/FilamentJobManagerServiceProvider.php +++ b/src/FilamentJobManagerServiceProvider.php @@ -12,7 +12,7 @@ public function configurePackage(Package $package): void $package->name('filament-job-manager') ->hasConfigFile() ->hasTranslations() - ->hasMigration('create_filament-job-manager_table'); - + ->hasMigration('create_filament-job-manager_table') + ->hasRoutes('web'); } } diff --git a/src/Resources/JobsResource.php b/src/Resources/JobsResource.php index e47b481..18e7da8 100644 --- a/src/Resources/JobsResource.php +++ b/src/Resources/JobsResource.php @@ -46,6 +46,8 @@ public static function form(Form $form): Form public static function table(Table $table): Table { return $table + ->poll('5s') + ->deferLoading() ->columns([ TextColumn::make('status') ->badge()