执行了refreshConfig 方法后 再请求getKey方法打印$configArr里面有时候有值有时候没值
重置属性有时管用有时不管用 是不是请求的某一个进程修改了 部分没修改呢 如果让所有进程都初始化成空呢
代码示例如下:
class SystemConfigService
{
public static $configArr = [];
public static function getKey($key){
var_dump(self::$configArr);
if(isset(self::$configArr[$key])){
return self::$configArr[$key];
}
$redis = Redis::retRedis();
$is = $redis->get(self::$key);
self::$configArr[$key] = $is;
}
public static function refreshConfig()
{
self::$configArr = [];
var_dump('已重置');
return true;
}
}
@walkor
进程间是隔离的,一个进程重置了类的静态属性,不影响其它进程。
你可以用channel插件做进程间通讯,让所有进程重置静态属性
https://www.workerman.net/plugin/18
感谢感谢 问题已解决