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的运行时,可方便地构建快速 ...
随机推荐
- 基于windows下,node.js之npm
1.下载node.js一路安装下去 在开始 node文件夹下,打开cmd 2.创建一个开发目录 mkdir reactQa && cd reactQa 3.初始化一个nmp的开发环境 ...
- day 97 VUE第一天
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...
- ccf 201809-3 元素选择器
一.思路: 1.将结构化文档的每一行处理成一个节点(可定义一个结构体,成员包含标签tag.属性id.层级level.祖先所在行数father). 2.然后整个结构化文档就成了一个树形结构,可从任一节点 ...
- Engineer Assignment(暴力+状压dp)
题意: n个工程,m个研究员,每个工程需要Ci个领域(X1,X2..Xci)的研究员 ,每个研究员会Di个不同的领域(X1,X2..Xdi),要完成一个工程必须使得分配给这个工程的研究员覆盖了这个工程 ...
- 设置xampp开机自动启动
l 设置xampp开机自动启动: 1)vi /etc/init.d/xampp.sh 增加:#!/bin/sh /opt/lampp/lampp start 2)vi /etc/rc.d/r ...
- 六、hibernate表与表之间的关系(多对多关系)
多对多关系 创建实体类和对应映射文件 Student.java package com.qf.entity; import java.util.HashSet; import java.util.Se ...
- config maven in intellij IDEA
Config maven in IDEA File ->Settings->Build,Execution.Deployment->build Too ...
- SVN版本管理 目录结构
一. SVN标准目录 Subversion有一个很标准的目录结构,是这样的.比如项目是 proj,svn地址为 svn://proj/,那么标准的 svn 布局是: 这是一个标准的布局,trunk为主 ...
- go语言从例子开始之Example6.if/else
if 和 else 分支结构在 Go 中当然是直接了当的了. package main import "fmt" func main() { 这里是一个基本的例子. if 7%2 ...
- webshell yar
webshell D盾 http://www.d99net.net/