一个简单的saas 系统,在 模型基类里面 boot 方法内 判断header 增加 全局查询条件,
protected static function boot(){
$appId = 0;
$package = '';
if(empty(request())) {
dump('===reqeust===');
// $appId = request()?->header('App-Id') ?? 0;
// $package = request()?->header('Package') ?? '';
}
}
这个判断 代码在队列里面执行会直接抛出异常。请问有没有别的代码能判断一下的?
重新安装包 排查了一下,删除 revolt/event-loop 后恢复正常,并不清楚哪里的问题 ,主要里面使用了 http-client 协程 涉及到这个扩展,所以请问下应该如何解决
你应该使用Context来保存appid数据 然后把你的投递队列改一下 底层默认把appid投递进queue msg 然后自己继承queue的Consumer类 然后获取到data数据的时候 用Context::set一下appid的数据 记得在最后 Context::destroy();一下
Webman\Context 类
request 正常只能在http进程中使用 你在队列 请问用户是谁?
request() 不在http进程中使用 这个函数 你得在进程启动的时候 初始化一下 \support\Context::init(); 你可以试一下