diff --git a/framework/core/src/Queue/QueueRestarter.php b/framework/core/src/Queue/QueueRestarter.php new file mode 100644 index 000000000..a168ee48d --- /dev/null +++ b/framework/core/src/Queue/QueueRestarter.php @@ -0,0 +1,57 @@ +container = $container; + $this->command = $command; + } + + public function subscribe(Dispatcher $events) + { + $events->listen([ + ClearingCache::class, Saved::class, + Enabled::class, Disabled::class + ], [$this, 'restart']); + } + + public function restart() + { + $this->command->setLaravel($this->container); + + $this->command->run( + new ArrayInput([]), + new NullOutput + ); + } +} diff --git a/framework/core/src/Queue/QueueServiceProvider.php b/framework/core/src/Queue/QueueServiceProvider.php index 19377e430..bfa824c67 100644 --- a/framework/core/src/Queue/QueueServiceProvider.php +++ b/framework/core/src/Queue/QueueServiceProvider.php @@ -161,5 +161,7 @@ class QueueServiceProvider extends AbstractServiceProvider } } }); + + $events->subscribe(QueueRestarter::class); } }