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. ASP.NET开发知识总结

    1.统一异常处理 某商城采用的异常处理方式,是全局统一捕捉,统一处理 思路: 一.定义异常过滤器    实现 MyExceptionFilter : FilterAttribute,IExceptio ...

  2. QTP read or write XML file

    'strNodePath = "/soapenv:Envelope/soapenv:Body/getProductsResponse/transaction/queryProducts/qu ...

  3. 洛谷 P1119 灾后重建——dijstra

    先上一波题目 https://www.luogu.org/problem/P1119 这道题我们可以将询问按时间排序 然后随着询问将相应已经重建成功的点进行操作 每次更新一个点就以他为起点跑一遍dij ...

  4. spring注解开发:容器中注册组件方式

    1.包扫描+组件标注注解 使用到的注解如下,主要针对自己写的类 @Controller @Service @Repository @Component @ComponentScan 参考 spring ...

  5. inno setup静默安装

    [Code] //关键代码静默安装 procedure InitializeWizard(); begin   //不显示边框,这样就能达到不会闪两下了   WizardForm.BorderStyl ...

  6. Pycharm2019版官方版本激活码,无需破解

    AHD9079DKZ-eyJsaWNlbnNlSWQiOiJBSEQ5MDc5REtaIiwibGljZW5zZWVOYW1lIjoiSmV0IEdyb3VwcyIsImFzc2lnbmVlTmFtZ ...

  7. Sublime Text3怎样在Deepin中配置CTags插件

    首先是要安装好Package Control,然后装插件CTags,这个时候在文件中右键已经能够出现Navigate to Definition菜单项了.然而,如果没有装CTags这个软件还是没用,所 ...

  8. kubernetes容器集群自签TLS证书

    集群部署 1.环境规划 2.安装docker 3.自签TLS证书 4.部署Flannel网络 5.部署Etcd集群 6.创建Node节点kubeconfig文件 7.获取K8S二进制包 8.运行Mas ...

  9. showmount - 显示关于 NFS 服务器文件系统挂载的信息

    总览 /usr/sbin/showmount [ -adehv ] [ --all ] [ --directories ] [ --exports ] [ --help ] [ --version ] ...

  10. 一、Json

    一.Json遍历模糊查询 你没admin 所以这句话报错. //1.写法 dynamic query = from user in jsonObject where (user.ToString(). ...