Laravel进阶系列笔记--(九)Laravel win10下的简单定时任务

作者: 温新

分类: 【Laravel】

阅读: 2636

时间: 2021-08-19 13:06:04

作者:温新

时间:2021-07-10

hi,我是温新,一名PHPer。

windows下使用Laravel定时任务相对于Linux来说复杂了不少。定时任务是一个经常需要用到的功能。对于定时任务,windows与Linux我都会写个记录。

Laravel对定时任务执行的时间段定义了很多方法,如每分钟执行,每两分钟执行...总之,用起来很方便。

定时任务在App\Console\Kernerl.php文件中的schedule方法中进行定义。

使用call方法实现简单的计划任务

第一步:编写定时任务

文件:app/Console/Kernel.php

use Illuminate\Support\Facades\Log;
protected function schedule(Schedule $schedule)
{
    $schedule->call(function(){
        // 计划任务
        Log::info('使用call方法的定时任务,每分钟执行一次');
    })->everyMinute();
}

第二步:终端手动执行定时任务

php artisan schedule:run
// 返回信息
[2021-07-09T16:15:44+00:00] Running scheduled command: Callback

手动执行是一件很麻烦的事情,定时任务就要定时执行。windows中实现Laravel定时还是一件很麻烦的事件。为了节约篇幅,现在将定时任务分开来写。

第三步:创建windows执行的脚本任务

h:
cd H:\phpstudy_pro\WWW\HyStudy\Laravel\laravel-demo02
php artisan schedule:run 1>> NUL 2>&1

将上述内容保存为bat文件,如我保存为schedule.bat

第四步:windows10实现定时任务

1)打开定时任务

win+R后输入taskschd.msc,如下图:

2)创建基本任务

9-1-schedule

3)编写[常规信息]

9-2-schedule

4)[触发器]选项,然后新建触发器

9-3-schedule

5)[操作]新建条件

9-4-shcedule

程序或脚本 选择第三步创建的schedule.bat文件。

这样定时任务就创建好啦,然后就等待执行吧~

定时任务执行后,会发现,每执行一次会有一个黑窗口弹出并快速消失了,这个很不友好。

第五步:因此定时任务执行时的黑窗口

编写如下内容,并将其保存为以.vbs结尾的文件,如我用的是laravel_schedule.vbs

Set ws = CreateObject("Wscript.Shell")   
ws.run "cmd /c C:\Users\45796\Desktop\schedule.bat",vbhide

注意:关于schedule.batlaravel_schedule.vbs这两个文件的路径最好一致。我这里将这两个文件全部放在地桌面。

我是温新

每天进步一点点,就一点点

请登录后再评论