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、创建计划任务

  1. 首先我们打开开始菜单,然后在搜索框中输入计划任务这几个字

  2.  回车确定之后,就会弹出计划任务的设置面板,
     
  3.  我们点击创建基本任务选项,,
     
  4.  然后输入任务名和描述,并点击下一步按钮,
     
  5.  选择任务提醒频率为每天,然后点击下一步
  6. 然后设置时间,如图:
 计划任务可再次修改编辑,可自行设置

二、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. 确定的时间执行

比如: 2016年7月13日15:50:00 , new Date() 的时候月份要减1.
  1. var date = new Date(2016,6,13,15,50,0);
  2. schedule.scheduleJob(date, function(){
  3. httpGet();
  4. });

运行结果:

2. 秒为单位执行

比如:每5秒执行一次
  1. var rule1     = new schedule.RecurrenceRule();
  2. var times1    = [1,6,11,16,21,26,31,36,41,46,51,56];
  3. rule1.second  = times1;
  4. schedule.scheduleJob(rule1, function(){
  5. httpGet();
  6. });

运行结果:

3.以分为单位执行

比如:每5分种执行一次
  1. var rule2     = new schedule.RecurrenceRule();
  2. var times2    = [1,6,11,16,21,26,31,36,41,46,51,56];
  3. rule2.minute  = times2;
  4. schedule.scheduleJob(rule2, function(){
  5. httpGet();
  6. });

运行结果:

有500请忽略,不小心把数据库关掉了.

4.以小时为单位执行

比如:每4小时执行一次
  1. var rule3     = new schedule.RecurrenceRule();
  2. var times3    = [1,5,9,13,17,21];
  3. rule3.hour  = times3;
  4. schedule.scheduleJob(rule3, function(){
  5. httpGet();
  6. });

以小时的就不贴运行结果了.时间太久

5.Cron风格

  1. schedule.scheduleJob('5 * * * * *', function(){
  2. httpGet();
  3. });
这个代码的意思就是每分钟的5秒这个点执行

图中注释定时器部分 是每秒执行 未注释部分是 每五秒执行

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

手动点击即可执行 auto.js 进而定时执行 auto.php文件 完成自动定时任务

PHP定时任务实现(计划任务 vs node.js)的更多相关文章

  1. Node.js 蚕食计划(三)—— Express 启航

    如果看过上一篇<Node.js 蚕食计划>,就会发现手动搭建一个 web 服务器还是比较繁琐 而 express 就是一个可以极大地提高开发效率的 web 开发框架 一.创建项目 在 ex ...

  2. 【重学Node.js 第4篇】实现一个简易爬虫&启动定时任务

    实现一个简易爬虫&启动定时任务 课程介绍看这里:https://www.cnblogs.com/zhangran/p/11963616.html 项目github地址:https://gith ...

  3. Node.js 蚕食计划(五)—— Koa 基础项目搭建

    Koa 是由 Express 原班人马打造的超轻量服务端框架 与 Express 相比,除了自由度更高,可以自行引入中间件之外,更重要的是使用了 ES6 + async,从而避免了回调地狱 不过也是因 ...

  4. Node.js 蚕食计划(二)—— 使用 http 模块搭建 Web 服务器

    Node.js 开发的目的就是为了用 JavaScript 编写 Web 服务器程序 这次就来介绍用 http 模块搭建服务器 一.项目构建 每个 Node 程序都可以看作一个模块,而每个模块都应该有 ...

  5. Node.js 蚕食计划(一)—— 模块化编程

    众所周知,Node.js 的出现造就了全栈工程师,因为它让 JavaScript 的舞台从浏览器扩大到了服务端 而 Node.js 的强大也得益于它庞大的模块库,所以学习 Node.js 第一步还得从 ...

  6. Node.JS 学习路线图

    转载自:http://www.admin10000.com/document/4624.html 从零开始nodejs系列文章, 将介绍如何利Javascript做为服务端脚本,通过Nodejs框架w ...

  7. Node.js 自学之旅

    学习基础,JQuery 原生JS有一定基础,有自己一定技术认知(ps:原型链依然迷糊中.闭包6不起来!哎!) 当然最好有语言基础,C#,java,PHP等等.. 最初学习这个东西的原因很简单,在园子里 ...

  8. Node.js入门:Node.js&NPM的安装与配置

    Node.js安装与配置      Node.js已经诞生两年有余,由于一直处于快速开发中,过去的一些安装配置介绍多数针对0.4.x版本而言的,并非适合最新的0.6.x的版本情况了,对此,我们将在0. ...

  9. node.js学习之路

    (非原创) 目录 Nodejs的介绍 15个Nodejs应用场景 Nodejs学习路线图 1. Nodejs的介绍 Node.js的是建立在Chrome的JavaScript的运行时,可方便地构建快速 ...

随机推荐

  1. jQuery:unbind方法的使用详解

    一.概述: unbind方法只能解绑用jQuery的bind方法以及用jQuery方法注册的事件处理程序.比如:$(‘a’).click(function(){})可以通过unbind解绑.用原生ad ...

  2. Centos7安装gearman和php扩展

    Centos7安装gearman和php扩展 标签(空格分隔): php,linux gearman所需要的依赖 yum install \ vim \ git \ gcc \ gcc-c++ \ w ...

  3. “希希敬敬对”队软件工程第九次作业-beta冲刺第四次随笔

    “希希敬敬对”队软件工程第九次作业-beta冲刺第四次随笔 队名:  “希希敬敬对” 龙江腾(队长) 201810775001 杨希                   201810812008 何敬 ...

  4. 转 awk统计nginx每天访问最高的接口

    TODAY=date +%d/%b/%Y 获取当天时间awk -v val="$TODAY" ’ $4 ~ val {print $7}’ access.log 打印当天访问的接口 ...

  5. Java GC算法

    转自:http://blog.csdn.net/heyutao007/article/details/38151581 1.JVM内存组成结构 JVM内存结构由堆.栈.本地方法栈.方法区等部分组成,结 ...

  6. C++中逻辑操作符的重载分析

    1,逻辑运算符的原生语义: 1,操作数只有两种值(true 和 false): 1,C 语言中只有非 0 和 0: 2,逻辑表达式不用完全计算就能确定最终值: 1,短路规则: 3,最终结果只能是 tr ...

  7. Centos7 安装vscode

    1.官网下载vscode https://vscode.cdn.azure.cn/stable/0f3794b38477eea13fb47fbe15a42798e6129338/code-1.36.0 ...

  8. 笔记72 高级SSM整合

    遇到的问题: 1.进行spring mvc测试的时候报错 测试代码: package com.li.test; import com.github.pagehelper.PageInfo; impor ...

  9. JavaSE---IO体系

    1.BIO 1.1 Block IO,同步阻塞IO: 1.2 eg:java.io   包下的      InputStream . OutputStream.  Writer.Reader... j ...

  10. SQO2008配置管理工具服务显示远程过程调用失败0x800706be

    需要进行删除或更改程序里面,去卸载Microsoft SQL Server 2012 Express LocalDB就可以用了 如果还不可以看,看看是不是还有其它的占用了这个实例名 如: Micros ...