PHP定时任务实现(计划任务 vs node.js)
PHP自动任务(单线程)
一、计划任务实现 :最终需要在服务器(windows)上 设置计划任务
1、写好php任务文件 auto.php:链接数据库 判断条件操作数据库


2、创建bat文件 例:run.bat
文件中写入 "D:\phpStudy\WWW\kawadai\nodejs\php\php.exe" -f "D:\phpStudy\WWW\kawadai\auto.php"
前者是php.exe 路径 后者是php任务文件路径
3、创建计划任务
首先我们打开开始菜单,然后在搜索框中输入计划任务这几个字
- 回车确定之后,就会弹出计划任务的设置面板,
- 我们点击创建基本任务选项,,
- 然后输入任务名和描述,并点击下一步按钮,
- 选择任务提醒频率为每天,然后点击下一步
- 然后设置时间,如图:
二、node.js实现
1、 安装node.js 及相关配置环境
下载地址 : http://nodejs.cn/
npm安装Node.js时会一起安装,npm的作用就是对Node.js依赖的包进行管理,也可以理解为用来安装/卸载Node.js需要装的东西

利用npm.cmd安装 所需模块 例: mqsql node-schedule jquery express

将安装好的环境包以及模块 一起复制 入php 项目根目录中

2、写好php任务文件 auto.php:链接数据库 判断条件操作数据库,该文件可放入 上述nodejs 文件夹
3、创建js文件 auto.js :该文件也可放于上述nodejs文件夹
node.js创建定时任务 执行cmd命令 cmd其实是执行php文件 : php.exe路径 php文件路径
定时时间设置
1. 确定的时间执行
- var date = new Date(2016,6,13,15,50,0);
- schedule.scheduleJob(date, function(){
- httpGet();
- });
运行结果:
2. 秒为单位执行
- var rule1 = new schedule.RecurrenceRule();
- var times1 = [1,6,11,16,21,26,31,36,41,46,51,56];
- rule1.second = times1;
- schedule.scheduleJob(rule1, function(){
- httpGet();
- });
运行结果:
3.以分为单位执行
- var rule2 = new schedule.RecurrenceRule();
- var times2 = [1,6,11,16,21,26,31,36,41,46,51,56];
- rule2.minute = times2;
- schedule.scheduleJob(rule2, function(){
- httpGet();
- });
运行结果:
有500
请忽略,不小心把数据库关掉了.
4.以小时为单位执行
- var rule3 = new schedule.RecurrenceRule();
- var times3 = [1,5,9,13,17,21];
- rule3.hour = times3;
- schedule.scheduleJob(rule3, function(){
- httpGet();
- });
以小时的就不贴运行结果了.时间太久
5.Cron风格
- schedule.scheduleJob('5 * * * * *', function(){
- httpGet();
- });
图中注释定时器部分 是每秒执行 未注释部分是 每五秒执行

4、创建bat文件 同样放于nodejs文件夹 内容:

手动点击即可执行 auto.js 进而定时执行 auto.php文件 完成自动定时任务
PHP定时任务实现(计划任务 vs node.js)的更多相关文章
- Node.js 蚕食计划(三)—— Express 启航
如果看过上一篇<Node.js 蚕食计划>,就会发现手动搭建一个 web 服务器还是比较繁琐 而 express 就是一个可以极大地提高开发效率的 web 开发框架 一.创建项目 在 ex ...
- 【重学Node.js 第4篇】实现一个简易爬虫&启动定时任务
实现一个简易爬虫&启动定时任务 课程介绍看这里:https://www.cnblogs.com/zhangran/p/11963616.html 项目github地址:https://gith ...
- Node.js 蚕食计划(五)—— Koa 基础项目搭建
Koa 是由 Express 原班人马打造的超轻量服务端框架 与 Express 相比,除了自由度更高,可以自行引入中间件之外,更重要的是使用了 ES6 + async,从而避免了回调地狱 不过也是因 ...
- Node.js 蚕食计划(二)—— 使用 http 模块搭建 Web 服务器
Node.js 开发的目的就是为了用 JavaScript 编写 Web 服务器程序 这次就来介绍用 http 模块搭建服务器 一.项目构建 每个 Node 程序都可以看作一个模块,而每个模块都应该有 ...
- Node.js 蚕食计划(一)—— 模块化编程
众所周知,Node.js 的出现造就了全栈工程师,因为它让 JavaScript 的舞台从浏览器扩大到了服务端 而 Node.js 的强大也得益于它庞大的模块库,所以学习 Node.js 第一步还得从 ...
- Node.JS 学习路线图
转载自:http://www.admin10000.com/document/4624.html 从零开始nodejs系列文章, 将介绍如何利Javascript做为服务端脚本,通过Nodejs框架w ...
- Node.js 自学之旅
学习基础,JQuery 原生JS有一定基础,有自己一定技术认知(ps:原型链依然迷糊中.闭包6不起来!哎!) 当然最好有语言基础,C#,java,PHP等等.. 最初学习这个东西的原因很简单,在园子里 ...
- Node.js入门:Node.js&NPM的安装与配置
Node.js安装与配置 Node.js已经诞生两年有余,由于一直处于快速开发中,过去的一些安装配置介绍多数针对0.4.x版本而言的,并非适合最新的0.6.x的版本情况了,对此,我们将在0. ...
- node.js学习之路
(非原创) 目录 Nodejs的介绍 15个Nodejs应用场景 Nodejs学习路线图 1. Nodejs的介绍 Node.js的是建立在Chrome的JavaScript的运行时,可方便地构建快速 ...
随机推荐
- UI:UI 目录
ylbtech-UI:UI 目录 1.返回顶部 2.返回顶部 3.返回顶部 4.返回顶部 5.返回顶部 6.返回顶部 作者:ylbtech出处:http://ylbtech ...
- 关于Java中编码集的有趣现象和解释
这是在整理另一篇博客的时候发现的一个有趣的现象,是这样描述的:我们都知道Java默认使用的是UniCode编码集,我们也知道char类型占用两个字节.所以奇怪的现象又发生了(见代码): @Test p ...
- 0.OpenCV框架
reference: https://docs.opencv.org/4.1.2/ 基本使用 1.图片和视频,读写(2,8) 2.OpenCV基本数据类型(3) 3.OpenCV大型数据类型及操作:图 ...
- 4.jmeter在线并发的怎样设置
4.1Jmeter 快速入门教程(一) - 认识jmeter和google插件 4.2Jmeter 快速入门教程(二)--创建简单web测试 打印 E-mail 4.3Jmeter 快速入门教程(三- ...
- sourcetree配置gitlab
一.准备 1.安装git,下载地址:https://git-scm.com/download 安装教程百度一下 git客户端(1.产生gitlab服务端和本地git相互传输时所需要校验的私钥 ...
- pycharm内对python文件的模板
#!/usr/bin/env python# -*- coding: utf-8 -*-# @Time : ${DATE} ${TIME}# @Author : Aries# @Site : ${SI ...
- 使用腾讯地图请求来源未被授权, 此次请求来源域名/ip:servicewechat.com
原文:微信小程序使用腾讯地图请求来源未被授权, 此次请求来源域名:servicewechat.com 版权声明:本文为博主原创文章,遵循CC 4.0 by-sa版权协议,转载请附上原文出处链接和本声明 ...
- xampp环境下,配置Zend Studio调试php(XDebug) 转摘:http://www.cnblogs.com/tuyithief/archive/2011/06/02/2068431.html
先说一下文件版本,xampp 1.7.4,php 5.3.5. 走了很多弯路,截止目前,ZendDebugger在php 5.3.x下,只有nts版本,既non Thread Safety(具体什么意 ...
- JS异步事件顺序:setTimeout,async,promise
为什么最近更新那么频繁,还不是因为笔试的时候瞎了? 先说异步事件执行顺序的规则: 1. 定时器异步队列和promise队列不是同一队列,promise优先级高于setTimeout; 2. 创建pro ...
- MYSQL中判断函数有哪些
新建一张客户表,如下:sex:1-男,2-女,3-未知:level是客户的级别:1-超级VIP客户,2-VIP客户,3-普通客户 方式一:case函数:流程控制函数 用法一: CASE express ...