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的FTP学习(三)
Oct 09 PHP
php adodb连接不同数据库
Mar 19 PHP
PHP Class&Object -- 解析PHP实现二叉树
Jun 25 PHP
php生成数组的使用示例 php全组合算法
Jan 16 PHP
php中数字、字符与对象判断函数用法实例
Nov 26 PHP
php给图片加文字水印
Jul 31 PHP
php实现无限级分类(递归方法)
Aug 06 PHP
php实现中文转数字
Feb 18 PHP
PHP基于curl post实现发送url及相关中文乱码问题解决方法
Nov 25 PHP
thinkphp5 migrate数据库迁移工具
Feb 20 PHP
浅谈PHP无限极分类原理
Mar 14 PHP
Laravel 自动转换长整型雪花 ID 为字符串的实现
Oct 27 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
discuz authcode 经典php加密解密函数解析
2020/07/12 PHP
php对mongodb的扩展(初出茅庐)
2012/11/11 PHP
简单的php新闻发布系统教程
2014/05/09 PHP
php按单词截取字符串的方法
2015/04/07 PHP
利用PHP访问MySql数据库的逻辑操作以及增删改查的实例讲解
2017/08/30 PHP
thinkPHP5框架实现基于ajax的分页功能示例
2018/06/12 PHP
js传值 判断
2006/10/26 Javascript
javascript网页关闭时提醒效果脚本
2008/10/22 Javascript
javascript new一个对象的实质
2010/01/07 Javascript
Javascript设计模式之观察者模式的多个实现版本实例
2015/03/03 Javascript
JavaScript中获取Radio被选中的值
2015/11/11 Javascript
深入理解JavaScript中的对象复制(Object Clone)
2016/05/18 Javascript
详解vue.js移动端导航navigationbar的封装
2017/07/05 Javascript
ES7中利用Await减少回调嵌套的方法详解
2017/11/01 Javascript
微信小程序基于slider组件动态修改标签透明度的方法示例
2017/12/04 Javascript
vue中本地静态图片路径写法
2018/03/06 Javascript
基于VUE实现的九宫格抽奖功能
2018/09/30 Javascript
JS双向链表实现与使用方法示例(增加一个previous属性实现)
2019/01/31 Javascript
Vue基础学习之项目整合及优化
2019/06/02 Javascript
python基础教程之基本内置数据类型介绍
2014/02/20 Python
python使用logging模块发送邮件代码示例
2018/01/18 Python
对python的文件内注释 help注释方法
2018/05/23 Python
Python提取PDF内容的方法(文本、图像、线条等)
2019/09/25 Python
pytorch实现focal loss的两种方式小结
2020/01/02 Python
Python 模拟生成动态产生验证码图片的方法
2020/02/01 Python
python不到50行代码完成了多张excel合并的实现示例
2020/05/28 Python
Python 整行读取文本方法并去掉readlines换行\n操作
2020/09/03 Python
Backcountry旗下的户外商品闪购网站:steep&cheap
2016/09/22 全球购物
草莓网官网:StrawberryNET
2019/08/21 全球购物
校园网站的创业计划书范文
2013/12/30 职场文书
先进党支部事迹材料
2014/01/13 职场文书
帮一个朋友写的求职信
2014/08/09 职场文书
裁员通知
2015/04/25 职场文书
检讨书范文大全
2015/05/07 职场文书
2015年校本培训工作总结
2015/07/24 职场文书
2016公司中秋节寄语
2015/12/07 职场文书