laravel Task Scheduling(任务调度)在windows下的使用详解

前言

laravel的任务调度是很好用的,因为Laravel提供了平滑而又富有表现力地调度器,并且服务器上只需要一个Cron条目即可,这使我们从编写手动写crontab中解放出来,使得程序重新获得定时任务的控制权。

但是,我们发现laravel的文档中只提供了linux/unix下的解决方案,但是我们大多数时候本地开发环境都是在windows下搭建的,所以,我们需要解决这些问题。

问题

本篇博客主要是围绕着如下几个问题展开

1. windows下,怎么使用laravel任务调度?

2. windows的计划任务能否替代crontab的工作?

3. 如何更好的使用windows的计划任务和laravel搭档?

解决方案

主要用到了windows任务计划程序,bat批处理,vbs脚本,有兴趣可以了解。

通过计划任务和批处理

这也是大家用到最多的方式了,stackoverflow一大半的回答都是这个。

1. 首先右键->新建->文本文档,任何位置都可以。   

2. 将如下代码拷贝进去。第一行的意思是进去到项目目录,第二行语句是执行artisan命令

cd /d E:\\WWW\laravel\

php artisan schedule:run 1>> NUL 2>&1

3. 然后另存为.bat的文件就好啦,名字随意,后缀.bat。   

4.然后就是创建计划任务,步骤图片如下所示,填写红框区域就好了

这个时候就会去调用laravel的任务调度了(前提是你已经在laravel里面编写好了任务调度),但是我们会发现,没过一分钟,都会有个dos命令的黑框弹出来,然后运行完了之后再关闭,这样会分散我们的注意力,于是就有了改进方案,请看方案二。   

通过vb脚本,实现自动任务的静默执行

前提是,你已经做完了第一步所有操作,会发现dos会自动弹出来执行程序,一分钟一次(下图所示),人都会逼疯,所以有了此方案。

1. 首先你已经做完了解决方案第一部分的所有操作

2. 在任何位置(只要你记得),新建一个文本文档,然后编辑如下代码进去,最后另存为.vbs文件

Set ws = CreateObject("Wscript.Shell")
ws.run "cmd /c E:\laravel.schedule.bat",vbhide

3.回到解决方案第一部分的第4步骤,编辑计划任务,将操作里面打开程序,从.bat脚本换成.vbs文件,步骤如下     

这个时候,你会发现,你的计划程序任然在进行,但是再也看不到烦人的dos窗口啦,这样也就实现了linux下的crontab的功能啦。

总结

ok,弄这个,包括测试,也花了不少时间,但是编程的乐趣不就是对未知的探索吗? laravel确实是一个好的框架,接下来,我还会写关于laravel邮件,队列等博客。但是突然发现vb好像也挺有用处的,我有不少大胆的想法了

以上这篇laravel Task Scheduling(任务调度)在windows下的使用详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • Laravel框架实现定时Task Scheduling例子

    问题描述: 在网站开发中,需要经常开启一些定时任务,例如定时清理脏数据等.本文主要介绍使用laravel自带的Task Scheduling配合cron实现定时任务. 编写定时任务 在laravel框架的App\Console\Kernel.php目录下编写你需要执行的定时任务.例如: $schedule->call(function () { XXXXXX })->hourly(); 程序会一个小时执行一次. 开启定时任务 在linxu系统下开启定时任务只需要两步: 打开crontab,执行

  • laravel Task Scheduling(任务调度)在windows下的使用详解

    前言 laravel的任务调度是很好用的,因为Laravel提供了平滑而又富有表现力地调度器,并且服务器上只需要一个Cron条目即可,这使我们从编写手动写crontab中解放出来,使得程序重新获得定时任务的控制权. 但是,我们发现laravel的文档中只提供了linux/unix下的解决方案,但是我们大多数时候本地开发环境都是在windows下搭建的,所以,我们需要解决这些问题. 问题 本篇博客主要是围绕着如下几个问题展开 1. windows下,怎么使用laravel任务调度? 2. wind

  • 安装redis(windows和Ubuntu)详解

    windows安装 1,首先官网下载redis 下载完的安装包 然后进行解压,目录如下: 在然后cmd,使用命令redis-server.exe redis.windows.conf 创建临时redis服务器. 下面是永久服务设置: 命令:redis-server.exe --service-install redis.windows.conf --loglevel verbose 添加一个windows服务 随后我们就可以去windows服务器来查看redis服务存在,但是还没有启动,可以手动

  • laravel使用Redis实现网站缓存读取的方法详解

    redis的简介 Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库. Redis 与其他 key - value 缓存产品有以下三个特点: Redis支持数据的持久化,可以将内存中的数据保持在磁盘中,重启的时候可以再次加载进行使用. Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储. Redis支持数据的备份,即master-slave模式的数据备份. Redis 优势 性能极高 – Red

  • Laravel自动生成UUID,从建表到使用详解

    gitHub地址: https://github.com/EmadAdly/laravel-uuid.git 1.安装依赖 composer require emadadly/laravel-uuid 2.然后在config/app.php的providers里添加ServiceProvider 'providers' => [ ... Emadadly\LaravelUuid\LaravelUuidServiceProvider::class, ], 3.然后根目录执行 php artisan

  • PyCharm 在Windows的有用快捷键详解

    前言 网上关于PyCharm快捷键的文章数不胜数,但是我发现有以下几个缺陷: 具体基于哪个配置? 因为Windows / Mac 的配置各不同, 而Windows 下面是基于XWin 还是 Eclipse的配置? 没有结合自身的开发经验进行提炼. 看起来都是一股脑的抛出来,对别人的指导意义不大. 没有列出中英文对照. 各位读者无法根据自己的习惯方便的找到对应的快捷键进行修改 简述一下我的开发环境: OS: Windows PyCharm 社区免费版 配置基础: Eclipse 代码查找 Alt

  • Python远程控制Windows服务器的方法详解

    目录 1. 被控端 windows 启动 winrm 服务 检查 winrm 服务监听状态 查看 winrm 配置信息(可选) 配置 winrm client 配置 winrm service 2. 控制端 3. 实战一下 4. 总结 在很多企业会使用闲置的 Windows 机器作为临时服务器,有时候我们想远程调用里面的程序或查看日志文件 Windows 内置的服务「 winrm 」可以满足我们的需求 它是一种基于标准简单对象访问协议( SOAP )的防火墙友好协议,允许来自不同供应商的硬件和操

  • Linux 下xargs命令详解及xargs与管道的区别

    为什么要用xargs,问题的来源 在工作中经常会接触到xargs命令,特别是在别人写的脚本里面也经常会遇到,但是却很容易与管道搞混淆,本篇会详细讲解到底什么是xargs命令,为什么要用xargs命令以及与管道的区别.为什么要用xargs呢,我们知道,linux命令可以从两个地方读取要处理的内容,一个是通过命令行参数,一个是标准输入.例如cat.grep就是这样的命令,举个例子: echo 'main' | cat test.cpp 这种情况下cat会输出test.cpp的内容,而不是'main'

  • linux 下实现sleep详解及简单实例

    linux 下实现sleep详解及简单实例 sleep: 普通版本 1.基本设计思路: 1>注册SIGALRM信号的处理函数:    2>调用alarm(nsecs)设定闹钟: 3>调⽤pause等待,内核切换到别的进程运行: 4>nsecs秒之后,闹钟超时,内核发SIGALRM给这个进程 ; 5>从内核态返回这个进程的⽤户态之前处理未决信号,发现有SIGALRM信号,其处理函数是sig_alrm; 6> 切换到用户态执行sig_alrm函数,进⼊sig_alrm函数时

  • J2ee 高并发情况下监听器实例详解

    J2ee 高并发情况下监听器实例详解 引言:在高并发下限制最大并发次数,在web.xml中用过滤器设置参数(最大并发数),并设置其他相关参数.详细见代码. 第一步:配置web.xml配置,不懂的地方解释一下:参数50通过参数名maxConcurrent用在filter的实现类中获取,filter-class就是写的实现类, url-pattern就是限制并发时间的url,结束! <filter> <filter-name>ConcurrentCountFilter</filt

  • linux系统下hosts文件详解及配置

    hosts文件 hosts -- the static table lookup for host name(主机名查询静态表). hosts文件是Linux系统上一个负责ip地址与域名快速解析的文件,以ascii格式保存在/etc/目录下.hosts文件包含了ip地址与主机名之间的映射,还包括主机的别名.在没有域名解析服务器的情况下,系统上的所有网络程序都通过查询该文件来解析对应于某个主机名的ip地址,否则就需要使用dns服务程序来解决.通过可以将常用的域名和ip地址映射加入到hosts文件中

随机推荐