laravel Task Scheduling(任务调度)在windows下的使用详解


Posted in PHP onOctober 22, 2019

前言

laravel的任务调度是很好用的,因为Laravel提供了平滑而又富有表现力地调度器,并且服务器上只需要一个Cron条目即可,这使我们从编写手动写crontab中解放出来,使得程序重新获得定时任务的控制权。

但是,我们发现laravel的文档中只提供了linux/unix下的解决方案,但是我们大多数时候本地开发环境都是在windows下搭建的,所以,我们需要解决这些问题。

问题

本篇博客主要是围绕着如下几个问题展开

1. windows下,怎么使用laravel任务调度?

2. windows的计划任务能否替代crontab的工作?

3. 如何更好的使用windows的计划任务和laravel搭档?

解决方案

主要用到了windows任务计划程序,bat批处理,vbs脚本,有兴趣可以了解。

通过计划任务和批处理

这也是大家用到最多的方式了,stackoverflow一大半的回答都是这个。

1. 首先右键->新建->文本文档,任何位置都可以。

laravel Task Scheduling(任务调度)在windows下的使用详解

2. 将如下代码拷贝进去。第一行的意思是进去到项目目录,第二行语句是执行artisan命令

cd /d E:\\WWW\laravel\

php artisan schedule:run 1>> NUL 2>&1

laravel Task Scheduling(任务调度)在windows下的使用详解

3. 然后另存为.bat的文件就好啦,名字随意,后缀.bat。

laravel Task Scheduling(任务调度)在windows下的使用详解

4.然后就是创建计划任务,步骤图片如下所示,填写红框区域就好了

laravel Task Scheduling(任务调度)在windows下的使用详解

laravel Task Scheduling(任务调度)在windows下的使用详解

laravel Task Scheduling(任务调度)在windows下的使用详解

laravel Task Scheduling(任务调度)在windows下的使用详解

这个时候就会去调用laravel的任务调度了(前提是你已经在laravel里面编写好了任务调度),但是我们会发现,没过一分钟,都会有个dos命令的黑框弹出来,然后运行完了之后再关闭,这样会分散我们的注意力,于是就有了改进方案,请看方案二。

通过vb脚本,实现自动任务的静默执行

laravel Task Scheduling(任务调度)在windows下的使用详解

前提是,你已经做完了第一步所有操作,会发现dos会自动弹出来执行程序,一分钟一次(下图所示),人都会逼疯,所以有了此方案。

1. 首先你已经做完了解决方案第一部分的所有操作

2. 在任何位置(只要你记得),新建一个文本文档,然后编辑如下代码进去,最后另存为.vbs文件

Set ws = CreateObject("Wscript.Shell") 
ws.run "cmd /c E:\laravel.schedule.bat",vbhide

laravel Task Scheduling(任务调度)在windows下的使用详解

3.回到解决方案第一部分的第4步骤,编辑计划任务,将操作里面打开程序,从.bat脚本换成.vbs文件,步骤如下

laravel Task Scheduling(任务调度)在windows下的使用详解

laravel Task Scheduling(任务调度)在windows下的使用详解

laravel Task Scheduling(任务调度)在windows下的使用详解

这个时候,你会发现,你的计划程序任然在进行,但是再也看不到烦人的dos窗口啦,这样也就实现了linux下的crontab的功能啦。

总结

ok,弄这个,包括测试,也花了不少时间,但是编程的乐趣不就是对未知的探索吗? laravel确实是一个好的框架,接下来,我还会写关于laravel邮件,队列等博客。但是突然发现vb好像也挺有用处的,我有不少大胆的想法了

以上这篇laravel Task Scheduling(任务调度)在windows下的使用详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
PHP警告Cannot use a scalar value as an array的解决方法
Jan 11 PHP
php excel reader读取excel内容存入数据库实现代码
Dec 06 PHP
探讨如何在PHP开启gzip页面压缩实例
Jun 09 PHP
PHP 冒泡排序 二分查找 顺序查找 二维数组排序算法函数的详解
Jun 25 PHP
php实现数组筛选奇数和偶数示例
Apr 11 PHP
php模拟post提交数据的方法
Feb 12 PHP
php实现的简单日志写入函数
Mar 31 PHP
PHP序列化/对象注入漏洞分析
Apr 18 PHP
各种快递查询--Api接口
Apr 26 PHP
PHP中Socket连接及读写数据超时问题分析
Jul 19 PHP
php版微信自定义回复功能示例
Dec 05 PHP
php设计模式之适配器模式实例分析【星际争霸游戏案例】
Apr 07 PHP
laravel 解决crontab不执行的问题
Oct 22 #PHP
laravel 解决paginate查询多个字段报错的问题
Oct 22 #PHP
在Laravel 中实现是否关注的示例
Oct 22 #PHP
Laravel 错误提示本地化的实现
Oct 22 #PHP
laravel 解决后端无法获取到前端Post过来的值问题
Oct 22 #PHP
Laravel 实现在Blade模版中使用全局变量代替路径的例子
Oct 22 #PHP
Yii框架getter与setter方法功能与用法分析
Oct 22 #PHP
You might like
程序员编程十条戒律
2009/07/09 PHP
浅析php单例模式
2014/11/25 PHP
php实现从上传文件创建缩略图的方法
2015/04/02 PHP
Laravel中Facade的加载过程与原理详解
2017/09/22 PHP
php-fpm重启导致的程序执行中断问题详解
2019/04/29 PHP
PHP7新特性
2021/03/09 PHP
JavaScript版代码高亮
2006/06/26 Javascript
js left,right,mid函数
2008/06/10 Javascript
Javascript 继承机制实例
2009/08/12 Javascript
JavaScript 组件之旅(一)分析和设计
2009/10/28 Javascript
JS实现QQ图片一闪一闪的效果小例子
2013/07/31 Javascript
JQuery中dataGrid设置行的高度示例代码
2014/01/03 Javascript
js实现从数组里随机获取元素
2015/01/12 Javascript
js将json格式的对象拼接成复杂的url参数方法
2016/05/25 Javascript
JS实现的RGB网页颜色在线取色器完整实例
2016/12/21 Javascript
windows下vue-cli导入bootstrap样式
2017/04/25 Javascript
微信小程序支付及退款流程详解
2017/11/30 Javascript
jQuery实现中奖播报功能(让文本滚动起来) 简单设置数值即可
2020/03/20 jQuery
uni-app如何页面传参数的几种方法总结
2020/04/28 Javascript
three.js欧拉角和四元数的使用方法
2020/07/26 Javascript
vue中watch和computed的区别与使用方法
2020/08/23 Javascript
vue 里面的 $forceUpdate() 强制实例重新渲染操作
2020/09/21 Javascript
vue图片裁剪插件vue-cropper使用方法详解
2020/12/16 Vue.js
[00:48]DOTA2国际邀请赛公开赛报名开始 扫码开启逐梦之旅
2018/06/06 DOTA
[04:32]玩具屠夫中文语音节选
2020/08/23 DOTA
python中正则表达式的使用详解
2014/10/17 Python
讲解Python中的递归函数
2015/04/27 Python
探究Python的Tornado框架对子域名和泛域名的支持
2015/05/02 Python
在Python中使用mechanize模块模拟浏览器功能
2015/05/05 Python
Python中http请求方法库汇总
2016/01/06 Python
python 实现矩阵填充0的例子
2019/11/29 Python
Python调用scp向服务器上传文件示例
2019/12/22 Python
使用Python爬取Json数据的示例代码
2020/12/07 Python
Python文件操作的面试题
2013/06/22 面试题
95%的面试官都会问到的50道Java线程题,附答案
2012/08/03 面试题
园林资料员岗位职责
2013/12/30 职场文书