diff --git a/.gitignore b/.gitignore index 005d2e3..d0a5eed 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ .idea +.DS_Store composer.lock \ No newline at end of file diff --git a/src/Listener/CoroutineDeferListener.php b/src/Listener/CoroutineDeferListener.php new file mode 100644 index 0000000..b14ab29 --- /dev/null +++ b/src/Listener/CoroutineDeferListener.php @@ -0,0 +1,31 @@ +release(); + } +} diff --git a/src/Listener/CoroutineDestoryListener.php b/src/Listener/CoroutineDestoryListener.php new file mode 100644 index 0000000..36dfd71 --- /dev/null +++ b/src/Listener/CoroutineDestoryListener.php @@ -0,0 +1,31 @@ +release(true); + } +} diff --git a/src/Listener/WorkerStartListener.php b/src/Listener/WorkerStartListener.php new file mode 100644 index 0000000..f09f5ec --- /dev/null +++ b/src/Listener/WorkerStartListener.php @@ -0,0 +1,36 @@ +initPool(); + } + } +} \ No newline at end of file diff --git a/src/Listener/WorkerStopAndErrorListener.php b/src/Listener/WorkerStopAndErrorListener.php new file mode 100644 index 0000000..767ec54 --- /dev/null +++ b/src/Listener/WorkerStopAndErrorListener.php @@ -0,0 +1,49 @@ + 'handle', + SwoftEvent::WORKER_SHUTDOWN => 'handle', + ]; + } + + /** + * @param EventInterface $event + * + */ + public function handle(EventInterface $event): void + { + $pools = BeanFactory::getBeans(Pool::class); + + /* @var Pool $pool */ + foreach ($pools as $pool) { + $count = $pool->close(); + + CLog::info('Close %d AMQP connection on %s!', $count, $event->getName()); + } + } +}