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连接MySQL代码的参数说明
Jun 07 PHP
Wordpress 相册插件 NextGEN-Gallery 添加目录将中文转为拼音的解决办法
Dec 29 PHP
在MongoDB中模拟Auto Increment的php代码
Mar 06 PHP
PHP中用hash实现的数组
Jul 17 PHP
PHP面向对象学习笔记之二 生成对象的设计模式
Oct 06 PHP
PHP可变函数的使用详解
Jun 14 PHP
php常用Stream函数集介绍
Jun 24 PHP
php遍历目录输出目录及其下的所有文件示例
Jan 27 PHP
php提示Warning:mysql_fetch_array() expects的解决方法
Dec 16 PHP
PHP执行shell脚本运行程序不产生core文件的方法
Dec 28 PHP
ThinkPHP中类的构造函数_construct()与_initialize()的区别详解
Mar 13 PHP
thinkPHP5框架分页样式类完整示例
Sep 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
PHP的cURL库功能简介 抓取网页、POST数据及其他
2011/04/07 PHP
PHP中CURL方法curl_setopt()函数的参数分享
2013/01/19 PHP
PHP中几个可以提高运行效率的代码写法、技巧分享
2014/08/21 PHP
PHP之密码加密的几种方式
2015/07/29 PHP
PHP网站建设的流程与步骤分享
2015/09/25 PHP
PHP简单日历实现方法
2016/07/20 PHP
php操作redis命令及代码实例大全
2020/11/19 PHP
用jQuery扩展自写的 UI导航
2010/01/13 Javascript
jquery.simple.tree插件 更简单,兼容性更好的无限树插件
2010/09/03 Javascript
JS 跳转页面延迟2种方法
2013/03/29 Javascript
JS截取字符串常用方法整理及使用示例
2013/10/18 Javascript
JS cookie中文乱码解决方法
2014/01/28 Javascript
jquery下div 的resize事件示例代码
2014/03/09 Javascript
一些实用性较高的js方法
2016/04/19 Javascript
浅谈js中test()函数在正则中的使用
2016/08/19 Javascript
Bootstrap 手风琴菜单的实现代码
2017/01/20 Javascript
基于JavaScript实现微信抢红包功能
2017/07/20 Javascript
React操作真实DOM实现动态吸底部的示例
2017/10/23 Javascript
详解Node 定时器
2018/02/26 Javascript
微信小程序实现横向增长表格的方法
2018/07/24 Javascript
mpvue写一个CPASS小程序的示例
2018/09/04 Javascript
vue中$refs, $emit, $on, $once, $off的使用详解
2019/05/26 Javascript
jQuery实现鼠标放置名字上显示详细内容气泡提示框效果的方法分析
2020/04/04 jQuery
Vue使用axios引起的后台session不同操作
2020/08/14 Javascript
解决vue加scoped后就无法修改vant的UI组件的样式问题
2020/09/07 Javascript
[06:07]辉夜杯现场观众互动 “比谁远送显示器”
2015/12/26 DOTA
Python实现简单登录验证
2016/04/13 Python
python基于物品协同过滤算法实现代码
2018/05/31 Python
Python 添加文件注释和函数注释操作
2020/08/09 Python
百年校庆节目主持词
2014/03/27 职场文书
技校毕业生自荐信
2014/06/03 职场文书
我的中国梦口号
2014/06/16 职场文书
学习雷锋月活动总结
2014/07/03 职场文书
布达拉宫的导游词
2015/02/02 职场文书
武夷山导游词
2015/02/03 职场文书
建筑工程挂靠协议书
2016/03/23 职场文书