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 相关文章推荐
六酷社区论坛HOME页清新格调免费版 下载
Mar 07 PHP
PHP 字符串分割和比较
Oct 06 PHP
选择PHP作为网站开发语言的原因分享
Jan 03 PHP
php和mysql中uft-8中文编码乱码的几种解决办法
Apr 19 PHP
解析dedecms空间迁移步骤详解
May 15 PHP
php的webservice的wsdl的XML无法显示问题的解决方法
Mar 11 PHP
php验证码实现代码(3种)
Sep 07 PHP
教你识别简单的免查杀PHP后门
Sep 13 PHP
YiiFramework入门知识点总结(图文教程)
Dec 28 PHP
如何使用微信公众平台开发模式实现多客服
Jan 06 PHP
PHP设计模式之简单工厂和工厂模式实例分析
Mar 25 PHP
PHP命令行与定时任务
Apr 01 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
全新的PDO数据库操作类php版(仅适用Mysql)
2012/07/22 PHP
php 去除html标记--strip_tags与htmlspecialchars的区别详解
2013/06/26 PHP
PHP判断变量是否为0的方法
2014/02/08 PHP
深入浅析Yii admin的权限控制
2016/08/31 PHP
PHP查找一列有序数组是否包含某值的方法
2020/02/07 PHP
jquery 简短右键菜单 多浏览器兼容
2010/01/01 Javascript
js日期范围初始化得到前一个月日期的方法
2015/05/05 Javascript
javascript背景时钟实现方法
2015/06/18 Javascript
JavaScript笔记之数据属性和存储器属性
2016/03/31 Javascript
JSON 的正确用法探讨:Pyhong、MongoDB、JavaScript与Ajax
2016/05/15 Javascript
老生常谈JavaScript 正则表达式语法
2016/08/20 Javascript
Bootstrap表单使用方法详解
2017/02/17 Javascript
完美实现js焦点轮播效果(二)(图片可滚动)
2017/03/07 Javascript
nodejs接入阿里大鱼短信验证码的方法
2017/07/10 NodeJs
webpack配置sass模块的加载的方法
2017/07/30 Javascript
javascript 数组精简技巧小结
2020/02/26 Javascript
vue任意关系组件通信与跨组件监听状态vue-communication
2020/10/18 Javascript
Python脚本实现集群检测和管理功能
2015/03/06 Python
python daemon守护进程实现
2016/08/27 Python
python批量下载抖音视频
2019/06/17 Python
Python生命游戏实现原理及过程解析(附源代码)
2019/08/01 Python
python+selenium+chromedriver实现爬虫示例代码
2020/04/10 Python
Python hashlib模块的使用示例
2020/10/09 Python
pandas map(),apply(),applymap()区别解析
2021/02/24 Python
PHP数据运算类型都有哪些
2013/11/05 面试题
大学团支书的自我评价分享
2013/12/14 职场文书
汽车销售顾问求职自荐信
2014/01/01 职场文书
关于工资低的辞职信
2014/01/14 职场文书
加入学生会演讲稿
2014/04/24 职场文书
综艺节目策划方案
2014/06/13 职场文书
纪律教育学习心得体会
2014/09/02 职场文书
课堂打架检讨书200字
2014/11/21 职场文书
2014年统战工作总结
2014/12/09 职场文书
2015元旦晚会主持人开场白+结束语
2014/12/14 职场文书
二十年同学聚会致辞
2015/07/28 职场文书
PyTorch 实现L2正则化以及Dropout的操作
2021/05/27 Python