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的运行时,可方便地构建快速 ...
随机推荐
- idea下web工程的编译和输出设置
公司的一个项目,别人用的eclipse,我这边用IDEA,路径上出了点问题,现在大概有点头绪了,记录下来. 打开project structure后,看到如下设置,最重要的是Modules和Artif ...
- 测开之路五十六:实现类似unittest的断言
import inspect class Case(object): """ 实现断言 """ def __init__(self): se ...
- 距离矢量路由协议——RIP
距离矢量路由协议RIP: 众所周知,RIP(Routing Information Protocol),即路由信息协议,是一种距离矢量路由协议,它与IGRP,OSPF等一样都是属于IGP(Interi ...
- 安装第三方包&查看python版本/第三方包版本
安装第三方包时,经常需要查看python版本,以及是否安装第三方包及版本,每次都要百度下指令. 故小编整理了下安装/卸载第三方包,查看python/第三包的指令,具体如下: 一.python安装/卸载 ...
- Html5 学习笔记 【PC固定布局】 实战7 机票预订页面
最终实际效果: HTML代码: <!DOCTYPE html> <html lang="zh-cn"> <head> <meta char ...
- PAT_A1074#Reversing Linked List
Source: PAT A1074 Reversing Linked List (25 分) Description: Given a constant K and a singly linked l ...
- C语言博客作业04
问题|答案 -|:-:|-: 这个作业属于哪个课程|c语言程序设计I 这个作业的要求在哪里|https://edu.cnblogs.com/campus/zswxy/CST2019-4/homewor ...
- 洛谷 P1111 修复公路——并查集
先上一波链接qwq https://www.luogu.org/problem/P1111 这题就是裸的并查集咯qwq 维护一下连通块的数目 数目变为一的时候整个图就连通了 输出此时的答案就okay拉 ...
- vue自定义组件添加原生事件监听
注:全局或局部注册的组件称为子组件,其中声明的组件名称(如下demo中的child)是一个自定义组件 Demo1-直接给父组件添加事件监听 <!DOCTYPE html> <html ...
- Sql 将A表数据插入到B表
A表和B表字段不同 --insert into B(Name,PersonalId,Education,IsDel) select Name, PersonId as PersonalId, ( ca ...