企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
第一步生成调用文件 执行以下命令 php artisan make:command 你的命名 该命令会在 app/Console/Commands 目录下创建 你命名的文件 下面是我对该文件的理解 ``` <?php namespace App\Console\Commands; use Illuminate\Console\Command; use App\Models\User; use Illuminate\Support\Facades\Log; class Test Command { /** * The name and signature of the console command. * * @var string */ //此处代表名称,调用时使用 protected $signature = 'command:Test'; /** * The console command description. * * @var string */ //对定时任务的描述 protected $description = '这是一个测试'; /** * Create a new command instance. * * @return void */ public function __construct() { parent::__construct(); } /** * Execute the console command. * * @return mixed */ public function handle() { /* * 这是是执行任务 */ //我们可以在这里做我们需要的操作 $user = User::find(1); $user->update(['name'=>'成功修改']); Log::info('定时任务执行'); } } ``` ### 第二步定义调度 文件修改好以后我们需要在App\\Console\\Kernel类的schedule方法中定义所有调度任务 ``` <?php namespace App\Console; use DB; use Illuminate\Console\Scheduling\Schedule; use Illuminate\Foundation\Console\Kernel as ConsoleKernel; class Kernel extends ConsoleKernel { /** * 应用提供的 Artisan 命令 * * @var array */ protected $commands = [ //这里写上你生成的文件路径 \App\Console\Commands\Test::class, ]; /** * 定义应用的命令调度 * * @param \Illuminate\Console\Scheduling\Schedule $schedule * @return void */ protected function schedule(Schedule $schedule) { //该处执行调度 $schedule->command('command:Test')->monthly(); } } ``` 以下为调度频率设置函数 ``` ->cron('* * * * *'); 在自定义Cron调度上运行任务 ->everyMinute(); 每分钟运行一次任务 ->everyFiveMinutes(); 每五分钟运行一次任务 ->everyTenMinutes(); 每十分钟运行一次任务 ->everyThirtyMinutes(); 每三十分钟运行一次任务 ->hourly(); 每小时运行一次任务 ->daily(); 每天凌晨零点运行任务 ->dailyAt('13:00'); 每天13:00运行任务 ->twiceDaily(1, 13); 每天1:00 & 13:00运行任务 ->weekly(); 每周运行一次任务 ->monthly(); 每月运行一次任务 ->monthlyOn(4, '15:00'); 每月4号15:00运行一次任务 ->quarterly(); 每个季度运行一次 ->yearly(); 每年运行一次 ->timezone('America/New_York'); 设置时区 ``` 第三步启动调度器 只需将以下 Cron 项目添加到服务器 ``` * * * * * /你php的绝对路径 /你项目的根目录绝对路径/artisan schedule:run >> /dev/null 2>&1 ``` 操作如下 命令行输入 ``` crontab -e ``` 输入 ``` i ``` 1 可以进入编辑状态,可输入任务代码。 在最后面添加 ``` * * * * * /你php的绝对路径 /你项目的根目录绝对路径/artisan schedule:run >> /dev/null 2>&1 例如 * * * * * /www/server/php/74/bin/php /www/wwwroot/test/artisan schedule:run >> /dev/null 2>&1 ``` 回车换行以后 先按Esc键,然后输入:wq 保存文件 然后执行命令 ``` php artisan schedule:run ``` 定时任务调度即可顺利执行