环境
PHP_VERSION=7.4
laravel/framework: ^7.0
静态变量
很多编程语言对于静态变量的解释都是: 与程序有着相同生命周期的变量, 只初始化一次
不过由于PHP的常用运行环境是...null;
}
}
因为之前没上队列处理异步任务, 程序一直没问题. 直到某一天上了队列之后, 有同事反馈, 有异常数据上报....由于Laravel的队列采用CLI运行模式, 这时候处理的任务都是后台运行
队列启动时载入代码, 直到队列进程被杀死, 否则代码也不会更新,
分析源码
队列的启动命令: php artisan queue..., 如果任务超时了, 那么就结束任务
下一步如果取出来的没任务, 那么就程序休眠, 否则就运行任务, 这里可以去看一下任务的实际运行代码
Laravel
Laravel
这里我们直接看...看进程是否需要终止, 前面说的queue:restart也是在这里处理
所以当我们使用静态变量的时候,虽然每次反射实例化了一个新的job,但实际上job去拿模型的属性的时候,static变量是一直没有发生变化的