Laravel计划任务的回调函数是多线程执行的吗?
Log::info('[GAS][计划任务][开始执行----------------------]');
$this->schedule->call(function () {
//腾讯统计
$this->gasOrderTotalForCustomerId(config('gas.customer_id.tencent'));
})->everyMinute()->description('GAS模块订单数据统计');
Log::info('[GAS][计划任务][执行结束----------------------]');
日志文件,按照顺序的话,“执行结束”应该在最后一行!
[2022-08-18 10:26:00] local.INFO: [GAS][计划任务][开始执行----------------------]
[2022-08-18 10:26:00] local.INFO: [GAS][计划任务][执行结束----------------------]
[2022-08-18 10:26:05] local.INFO: [GAS][计划任务][腾讯订单统计][开始]
[2022-08-18 10:26:05] local.INFO: [GAS][计划任务][腾讯订单统计][统计完成]
都是绑定到events这个成员数组里面去 , CallbackEvent 也是继承的 Scheduling\Event
然后返回的是Event实例 因为还需要执行比如(everyFiveMinutes)的绑定
运行 php artisan scheduling:run 的时候 artisan 文件里面会实例化这个
$kernel = $app->make(Illuminate\Contracts\Console\Kernel::class);
实际执行的是这个
然后在这个里面绑定了这个
这个里面就会调用
绑定注册这个里面的命令
回到这个类
在这个handle 依赖注入了这个类\Illuminate\Console\Scheduling\Schedule 所以会触发$this->app->singleton(Schedule::class .... 这个单例 就会绑定那些命令
这里才是实际执行的