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 相关文章推荐
PHP4引用文件语句的对比
Oct 09 PHP
PHP mail 通过Windows的SMTP发送邮件失败的解决方案
May 27 PHP
PhpMyAdmin中无法导入sql文件的解决办法
Jan 08 PHP
ajax+php打造进度条代码[readyState各状态说明]
Apr 12 PHP
php记录代码执行时间(实现代码)
Jul 05 PHP
php发送短信验证码完成注册功能
Nov 24 PHP
Yii2框架引用bootstrap中日期插件yii2-date-picker的方法
Jan 09 PHP
最新版本PHP 7 vs HHVM 多角度比较
Feb 14 PHP
Zend Framework入门教程之Zend_Session会话操作详解
Dec 08 PHP
PHP实现双链表删除与插入节点的方法示例
Nov 11 PHP
PHP实现的微信公众号扫码模拟登录功能示例
May 30 PHP
php探针使用原理和技巧讲解
Sep 17 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
ThinkPHP处理Ajax返回的方法
2014/11/22 PHP
php通过pecl方式安装扩展的实例讲解
2018/02/02 PHP
Thinkphp框架使用list_to_tree 实现无限级分类列出所有节点示例
2020/04/04 PHP
基于PHP实现堆排序原理及实例详解
2020/06/19 PHP
Gird组件 Part-3:范例RSSFeed Viewer
2007/03/10 Javascript
jquery下利用jsonp跨域访问实现方法
2010/07/29 Javascript
js获取当前时间显示在页面上并每秒刷新
2014/12/24 Javascript
js检测用户输入密码强度
2015/10/22 Javascript
javascript设计简单的秒表计时器
2020/09/05 Javascript
基于jQuery实现拖拽图标到回收站并删除功能
2015/11/25 Javascript
分享javascript计算时间差的示例代码
2020/03/19 Javascript
网页瀑布流布局jQuery实现代码
2016/10/21 Javascript
JS控制TreeView的结点选择
2016/11/11 Javascript
jQuery实现表格奇偶行显示不同背景色 就这么简单
2017/03/13 Javascript
Vue 2.0双向绑定原理的实现方法
2019/10/23 Javascript
ES6中的Javascript解构的实现
2020/10/30 Javascript
[03:49]辉夜杯现场龙骑士COSER秀情商“我喜欢芬队!”
2015/12/27 DOTA
Python设计模式之单例模式实例
2014/04/26 Python
python避免死锁方法实例分析
2015/06/04 Python
Python入门_浅谈数据结构的4种基本类型
2017/05/16 Python
python+selenium开发环境搭建图文教程
2017/08/11 Python
Python时间戳使用和相互转换详解
2017/12/11 Python
Python使用psutil获取进程信息的例子
2019/12/17 Python
Python urllib2运行过程原理解析
2020/06/04 Python
Python中flatten( ),matrix.A用法说明
2020/07/05 Python
玩具反斗城天猫官方旗舰店:享誉全球的玩具店
2017/10/10 全球购物
印度尼西亚最大的电商平台:Tokopedia(印尼版淘宝)
2017/12/02 全球购物
文化与传播毕业生求职信
2014/03/09 职场文书
《雕塑之美》教学反思
2014/04/24 职场文书
工业设计专业自荐书
2014/06/05 职场文书
2014年四风个人对照检查及整改措施
2014/10/28 职场文书
2015年复活节活动总结
2015/02/27 职场文书
2016秋季小学开学寄语
2015/12/03 职场文书
民警忠诚教育心得体会
2016/01/23 职场文书
Python自然语言处理之切分算法详解
2021/04/25 Python
SpringCloud之@FeignClient()注解的使用方式
2021/09/25 Java/Android