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的运行时,可方便地构建快速 ...
随机推荐
- C#-Newtonsoft.Json遍历并修改JSON
遍历 JObject:https://www.newtonsoft.com/json/help/html/JObjectProperties.htm 遍历 JArray: string json = ...
- git 裸库
初始化一个空的裸仓库 $ cd /home/repo $ mkdir tproject.git $ cd tproject.git $ git init - -bare 注:这是在服务器上运 ...
- 安装第三方包&查看python版本/第三方包版本
安装第三方包时,经常需要查看python版本,以及是否安装第三方包及版本,每次都要百度下指令. 故小编整理了下安装/卸载第三方包,查看python/第三包的指令,具体如下: 一.python安装/卸载 ...
- Html5 学习笔记 --》布局
不推荐: 浮动布局: footer 设置 clear : both 清理浮动 | header | |边 | | |内 | 内容 ...
- git使用记录九:开发中临时加塞了紧急任务怎么处理
开发中临时加塞了紧急任务怎么处理 隐藏工作区域 git stash git status 查询隐藏的列表 git stash list 处理完bug,提交之后,再恢复隐藏的工作区域 git stash ...
- 关于deepin下安装ssh以后root用户登陆报错的解决
最近刚刚接触到deepin,觉得,wow,除了mac,还有这么好看的非win系统,而且第测出那个Linux,宽容度很高,非常适合我这种比较喜欢折腾的人,于是下载了deepin15版本并将其当作虚拟机成 ...
- golang的数据类型之基本数据类型的默认值和转换
默认值: 整型的默认值:0 浮点型的默认值:0字符串的默认值:"" //空布尔类型的默认值:false package mainimport "fmt" f ...
- c# WInform 自定义导航布局
问题形成原因:软件一般都是左侧树导航或上部菜单导航,做好一个软件后,有的客户可能想用一个页面做导航图像,而各个客户用的功能可能不同,所以导航布局需要自定义. 思路:1.把菜单列出来 2.双击菜单生成一 ...
- LeetCode Linked List Easy 21. Merge Two Sorted Lists
Description Merge two sorted linked lists and return it as a new list. The new list should be made b ...
- MyEclipse安装jrebel7.0.2插件
1 安装: windows --> install from site 填入网址 http://update.zeroturnaround.com/update-site-archive/upd ...