Laravel新版本中AI项目调度的kernel.php替代方案是什么?
Laravel新版本任务调度替代方案
从Laravel 11版本开始,原app/Console/Kernel.php文件被移除,任务调度的实现方式调整为以下两种主流方案:
方案一:直接在bootstrap/app.php中定义调度
你可以在项目根目录的bootstrap/app.php文件里,通过Schedule实例直接定义任务调度规则,示例如下:
use Illuminate\Support\Facades\Schedule; // 调度自定义AI处理命令 Schedule::command('ai:process-data')->daily(); // 调度闭包形式的AI逻辑 Schedule::call(function () { // 执行你的AI相关处理逻辑 })->hourly();
方案二:创建独立调度文件(推荐)
为了保持代码结构整洁,你可以创建单独的调度文件,再在bootstrap/app.php中加载它:
- 创建调度文件(示例路径:
app/Schedule/schedule.php):
<?php use Illuminate\Support\Facades\Schedule; // 调度AI模型训练命令 Schedule::command('ai:train-model')->weeklyOn(1, '02:00'); // 调度AI数据集处理任务 Schedule::job(new \App\Jobs\ProcessAiDataset)->everyThirtyMinutes();
- 在
bootstrap/app.php中加载该文件:
require __DIR__.'/../app/Schedule/schedule.php';
需要注意的是,Laravel任务调度的核心逻辑并未改变,你仍可使用原有的调度频率方法(如daily()、cron()、everyMinute()等),命令和任务类的创建方式也与旧版本一致,仅配置位置发生了调整。
内容的提问来源于stack exchange,提问作者404ptk
相关产品推荐
相关产品推荐

