Laravel进阶系列笔记--(九)Laravel win10下的简单定时任务
作者:温新
时间: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)创建基本任务
3)编写[常规信息]
4)[触发器]选项,然后新建触发器
5)[操作]新建条件
程序或脚本 选择第三步创建的schedule.bat
文件。
这样定时任务就创建好啦,然后就等待执行吧~
定时任务执行后,会发现,每执行一次会有一个黑窗口弹出并快速消失了,这个很不友好。
第五步:因此定时任务执行时的黑窗口
编写如下内容,并将其保存为以.vbs
结尾的文件,如我用的是laravel_schedule.vbs
。
Set ws = CreateObject("Wscript.Shell")
ws.run "cmd /c C:\Users\45796\Desktop\schedule.bat",vbhide
注意:关于schedule.bat
与laravel_schedule.vbs
这两个文件的路径最好一致。我这里将这两个文件全部放在地桌面。
我是温新
每天进步一点点,就一点点
请登录后再评论