请教一下webman热重载的问题

codeas

我司产品这边线上已经使用webman开发产品,稳定性能表现非常优越,先实名表扬一下。

现在运维K8S部署要求webman需要做配置热重载,每次从配置中心修改.env配置以后,webman需要自动加载最新的配置。

请问一下webman是否能够实现对.env的监听重载?感激不尽!

3768 2 2
2个回答

codeas

我现在想到一个解决方案就是:
开一个http服务接口,然后在接口代码里面执行

exec('php start.php reload');

不知道这样是否可行?会不会出现问题?目前测试是可以reload服务

  • walkor 2020-12-30

    运行 posix_kill(posix_getppid(), SIGUSR1); ,意思是给当前进程的父进程发送SIGUSR1信号让其执行reload

  • codeas 2020-12-30

    @1:测试了一下,修改.env里面的数据库名,好像并未生效。我随便配置了一个不存在的库,但是接口还是以前的正确数据。忘了说一下情况就是webman在容器里是debug模式运行的,并未常驻内存运行。因为运维要求进程要卡主,否则容器会自动认为这个服务已经挂了!不知道这个有影响不

  • walkor 2020-12-30

    如果执行 posix_kill(posix_getppid(), SIGUSR1);的进程与webman不是共同的主进程,则没有效果。
    测试下在终端执行 php start.php reload 是否可以加载 新的.env

  • codeas 2020-12-30

    @1:目前是在一个主进程下,但是执行后并未生效最新的.env配置。有点头疼

walkor

更新下
webman/start.php
webman/config/process.php
webman/process/FileMonitor.php

github地址 https://github.com/walkor/webman

增加了.env监控自动加载。

年代过于久远,无法发表回答
🔝