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.NET的入门教程
Oct 09 PHP
PHP中for循环语句的几种变型
Nov 26 PHP
php 缓存函数代码
Aug 27 PHP
PHP+XML 制作简单的留言本 图文教程
Nov 02 PHP
深入理解PHP原理之异常机制
Aug 21 PHP
解析PHP无限级分类方法及代码
Jun 21 PHP
php获得用户ip地址的比较不错的方法
Feb 08 PHP
PHP高级编程实例:编写守护进程
Sep 02 PHP
浅谈json_encode用法
Mar 05 PHP
PHP大文件分割上传 PHP分片上传
Aug 28 PHP
Laravle eloquent 多对多模型关联实例详解
Nov 22 PHP
PHP7实现和CryptoJS的AES加密方式互通示例【AES-128-ECB加密】
Jun 08 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
phpMyAdmin 安装教程全攻略
2007/03/19 PHP
php实现mysql数据库操作类分享
2014/02/14 PHP
使用CodeIgniter的类库做图片上传
2014/06/12 PHP
php超快高效率统计大文件行数
2015/07/05 PHP
php魔法函数与魔法常量使用介绍
2017/07/23 PHP
判断iframe是否加载完成的完美方法
2010/01/07 Javascript
jquery控制listbox中项的移动并排序的实现代码
2010/09/28 Javascript
轻松创建nodejs服务器(6):作出响应
2014/12/18 NodeJs
jQuery标签编辑插件Tagit使用指南
2015/04/21 Javascript
有关json_decode乱码及NULL的问题
2015/10/13 Javascript
javaScript中定义类或对象的五种方式总结
2016/12/04 Javascript
Node.js的特点详解
2017/02/03 Javascript
js实现添加删除表格(两种方法)
2017/04/27 Javascript
jQuery 实现鼠标画框并对框内数据选中的实例代码
2017/08/29 jQuery
微信通过页面(H5)直接打开本地app的解决方法
2017/09/09 Javascript
zTree jQuery 树插件的使用(实例讲解)
2017/09/25 jQuery
微信小程序实现点击按钮修改字体颜色功能【附demo源码下载】
2017/12/05 Javascript
Vue.js通用应用框架-Nuxt.js的上手教程
2017/12/25 Javascript
Vue.js 表单控件操作小结
2018/03/29 Javascript
JavaScript React如何修改默认端口号方法详解
2020/07/28 Javascript
win7安装python生成随机数代码分享
2013/12/27 Python
Python实现获取域名所用服务器的真实IP
2015/10/25 Python
python实现搜索文本文件内容脚本
2018/06/22 Python
Python自然语言处理 NLTK 库用法入门教程【经典】
2018/06/26 Python
Python Pillow Image Invert
2019/01/22 Python
python多任务及返回值的处理方法
2019/01/22 Python
深入解析python中的实例方法、类方法和静态方法
2019/03/11 Python
详解用python实现基本的学生管理系统(文件存储版)(python3)
2019/04/25 Python
详解Html5原生拖拽操作
2018/01/12 HTML / CSS
zooplus意大利:在线宠物商店
2019/08/07 全球购物
大学同学十年聚会感言
2014/02/21 职场文书
岗位职责说明书
2014/05/07 职场文书
综合办公室主任岗位职责
2015/04/01 职场文书
2015年幼儿园个人工作总结
2015/04/25 职场文书
小英雄雨来观后感
2015/06/09 职场文书
HTML+CSS实现导航条下拉菜单的示例代码
2021/08/02 HTML / CSS