GatewayWorker 遇到的一个自动更新奇怪的问题

scan_z

线上 GatewayWorker 持续运行中,今天提交了一些新代码,没有重启服务,也没有文件监控reload服务,按理说新提交的代码不会生效,但是看自定义的一些日志记录,有一部分居然是新代码才有的日志,说明某些进程更新了我提交的代码,我看workerman.log 里面也没有报错或者进程重启的记录,GatewayWorker启动后不是常驻内存的吗? 还有什么原因会造成这种情况?

  • ps 里面的相关进程lstart 时间都早于我提交代码的时间
1512 1 0
1个回答

six

如果代码是类文件,并且已经载入到内存,那么必须重启进程才能生效。
ps aux 看下进程启动时间,有可能进程有重启。

如果之前没有载入到内存,那么随着这个进程处理业务,会将磁盘上的文件载入内存,可能刚好载入到你最新的代码。

  • scan_z 2020-09-16

    我没有新加文件,我只是改动了线上已经存在的文件方法里面一些东西,ps 里面的相关进程lstart 时间都早于我提交代码的时间,线上业务量很大,每个进程都没有空闲过,加上workerman.log里面也没有重启过的日志,所以才觉得很奇怪,一部分进程居然更新了我的代码。。。

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