Job 任务代码无论怎么修改,不生效,奇怪!
$data=[
'id' => 0,
'name' => 'aaa',
];
AppiontPubNext::dispatch($data);
class AppiontPubNext implements ShouldQueue
{
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
protected $data;
public function __construct($data=[])
{
$this->data = $data;
Log::info($data);
}
public function handle()
{
$data = $this->data;
}
}
[2020-09-21 14:29:29] production.INFO: array (
'id' => 0,
'name' => 'aaa',
)
[2020-09-21 14:29:29] production.ERROR: appiontPubNext less param!
奇怪,appiontPubNext less param!
这行 log 日志代码早就删掉了,并且确定已更新。
疑点一,走的不是这个文件,修改 __construct
中的代码确实变了,证明走的确实是这个文件,全局搜索appiontPubNext
根本没有这行提示!
无论怎么修改 handle
中的代码都不起作用,为什么?
原理就是job的代码是在cli模式下运行的,cli是常驻内存,最开始启动的时候代码是什么样就一直是什么样,直到遇到了重启或者异常关闭代码才会改变。