From da86636a5a751936e7ff28b172e96cdcb22f3a18 Mon Sep 17 00:00:00 2001 From: Deeka Wong <8337659+huangdijia@users.noreply.github.com> Date: Tue, 14 Jan 2025 17:18:55 +0800 Subject: [PATCH 1/2] Add `confd.watch` option, default as `true`. --- src/confd/publish/confd.php | 7 ++++++- src/confd/src/Listener/WatchOnBootListener.php | 11 +++++++++-- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/src/confd/publish/confd.php b/src/confd/publish/confd.php index 820aab5f2..e7b0d28bc 100644 --- a/src/confd/publish/confd.php +++ b/src/confd/publish/confd.php @@ -63,9 +63,14 @@ 'env_path' => BASE_PATH . '/.env', - 'interval' => 1, + // Watch on boot + 'watch' => (bool) env('CONFD_WATCH', true), + // Watch keys 'watches' => [ 'DB_HOST', ], + + // Watch interval + 'interval' => 1, ]; diff --git a/src/confd/src/Listener/WatchOnBootListener.php b/src/confd/src/Listener/WatchOnBootListener.php index b2537b433..6d8ac7215 100644 --- a/src/confd/src/Listener/WatchOnBootListener.php +++ b/src/confd/src/Listener/WatchOnBootListener.php @@ -13,6 +13,7 @@ use FriendsOfHyperf\Confd\Confd; use FriendsOfHyperf\Confd\Traits\Logger; +use Hyperf\Contract\ConfigInterface; use Hyperf\Event\Contract\ListenerInterface; use Hyperf\Framework\Event\MainWorkerStart; use Hyperf\Server\Event\MainCoroutineServerStart; @@ -22,8 +23,10 @@ class WatchOnBootListener implements ListenerInterface { use Logger; - public function __construct(private ContainerInterface $container) - { + public function __construct( + private ContainerInterface $container, + private ConfigInterface $config + ) { $this->resolveLogger(); } @@ -40,6 +43,10 @@ public function listen(): array */ public function process(object $event): void { + if (! $this->config->get('confd.watch', true)) { + return; + } + $this->container->get(Confd::class)->watch(); $this->logger?->debug('[confd] Start watching.'); } From 16e3419721dd9bb4c4cf671760bd7644cde1536c Mon Sep 17 00:00:00 2001 From: Deeka Wong <8337659+huangdijia@users.noreply.github.com> Date: Tue, 14 Jan 2025 17:21:54 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E5=B0=86=20'interval'=20=E9=85=8D=E7=BD=AE?= =?UTF-8?q?=E9=A1=B9=E4=BF=AE=E6=94=B9=E4=B8=BA=E4=BB=8E=E7=8E=AF=E5=A2=83?= =?UTF-8?q?=E5=8F=98=E9=87=8F=20'CONFD=5FINTERVAL'=20=E8=8E=B7=E5=8F=96?= =?UTF-8?q?=E5=80=BC=EF=BC=8C=E9=BB=98=E8=AE=A4=E4=B8=BA=201?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/confd/publish/confd.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/confd/publish/confd.php b/src/confd/publish/confd.php index e7b0d28bc..e5f9239d0 100644 --- a/src/confd/publish/confd.php +++ b/src/confd/publish/confd.php @@ -72,5 +72,5 @@ ], // Watch interval - 'interval' => 1, + 'interval' => (int) env('CONFD_INTERVAL', 1), ];