Windows中php任务计划定时执行PHP代码及扩展
因为在项目中有个需求是大批量的数据自动计算后插入更新到数据库中,为避免占用正常资源,需要在固定时间段进行自动计算,因为项目服务器是windows server2012,就考虑用windows平台强大的任务计划程序来实现。
此外在网上找了这类似问题的解决办法后,还可用PHP的ignore_user_abort()函数,这个函数还没使用过,PHP官网是这样介绍的
int ignore_user_abort ([ string $value ] )
设置客户端断开连接时是否中断脚本的执行 ,PHP以命令行脚本执行时,当脚本终端结束,脚本不会被立即中止,除非设置 value 为 TRUE,否则脚本输出任意字符时会被中止。
个人理解就是不通过浏览器来执行,而是通过命令行方式执行的情况下,此函数的代码块继续执行。在这篇博文中有具体地通过此函数的实现过程。
下面是一个测试用的例子。
windows批处理文件
新建文本文档,编写如下代码,保存为.bat文件。
E:
"E:\PHP\wamp\bin\php\php5.5.12\php.exe" -f "E:\PHP\wamp\www\write.php"
PHP运行模式
平时执行php代码,是通过浏览器向服务器请求的方式执行的,这种运行模式叫模块模式。 模块模式是以mod_php5模块的形式集成,此时mod_php5模块的作用是接收Apache传递过来的PHP文件请求,并处理这些请求,然后将处理后的结果返回给Apache。如果我们在Apache启动前在其配置文件中配置好了PHP模块(mod_php5), PHP模块通过注册apache2的ap_hook_post_config挂钩,在Apache启动的时候启动此模块以接受PHP文件的请求。
而我们用php.exe执行时, 便是 CLI模式,这篇博文对PHP四种运行模式进行了详细阐述。
php.exe
PHP命令行执行程序php.exe的功能非常强大,在windows环境下配置系统变量path的值可以直接在dos窗口界面直接运行php脚本文件,这篇文章有具体配置方法。
这里的php.exe是php安装目录下三个和php相关的exe文件中的一个,php-cgi.exe、php-win.exe
php-cgi.exe提供来作为CGI使用的,通常用来在windows环境下通过cgi方式解析php脚本,常用于在iis下运行php网站,区别是在文件输出所有内容之前,会自动输出一个下面的HTTP头
X-Powered-By: PHP/5.2.5
Content-type: text/html
php-win.exe也可以执行PHP文件,区别是大打开控制台,不显示输出内容。可以用来编写无需显示界面的文件处理、网路服务等程序。
PHP执行代码
<?php
$fp = @fopen("E:/PHP/wamp/www/test.txt", "a+");
fwrite($fp, "自动播报时间:\n" . date("Y-m-d H:i:s"));
fclose($fp);
这里的文件路径一定要是绝对路径,因为没有经过apache或iis这种服务器,除了一些基于服务器的变量不能使用的,如$_SERVER等,还有很有可能发生各种无法预计的错误。
创建任务计划
这个百度一下就能出很多,我测试的用的是windows7.
开始–》附件–》系统工具–》任务计划程序
双击创建任务
创建名称和设置执行权限
设置好开始时间和重复任务间隔时间
选择写好的脚本路径
到这儿就已经创建好任务计划程序了
下面是执行的效果
Windows中php任务计划定时执行PHP代码及扩展相关推荐
- 计划任务执行 php代码,php实现Windows任务计划定时执行的代码以及扩展(图)
任务计划在我们的日常工作开发中,有很大用处.有时项目需要大批量的数据更新插入数据库中,那么我们为了能够节约资源,需要定时时间段进行自动计算,为此,我们就需要php计划任务来实现,那么我们今天就给大家介 ...
- windows设置任务计划定时执行php程序,两种方法
windows设置任务计划定时执行php程序,两种方法 1.定时执行bat文件 2.定时执行php文件 1.定时执行bat文件 新建一个php文件 :在php文件写入你要执行的程序: <?php ...
- windowsLinux任务计划定时执行python脚本
windows任务计划定时执行python脚本 前提 :python已经编写完毕 ##1.控制面板–>所有控制面板项–>管理工具–>任务计划程序 ##2.创建任务->主要在操作 ...
- 在Windows中为文件添加“可执行”权限(chmod +x 文件名 不起作用)
我们想为Windows中某文件添加可执行权限,原本想用 chmod +x 文件名 命令,但发现不起作用, 于是,尝试下面方法 在demo.txt文件中,打开,第一行添加语句 #!/bin/bas ...
- 逐浪CMS2 x3.8新功能:定时执行C#代码让二次开发虎虎添翼
关于本功能的简介: <隐藏简介 详细说明 众所周知,由于Zoomla!逐浪CMS2 x3.8是基于MVC架构,不仅性能卓越,同时也带来了很多全新的开发机制. 本文介绍最新功能之一:定时执行C#代 ...
- Spring中Bean创建完成后执行指定代码的几种实现方式
Spring中Bean创建完成后执行指定代码的几种实现方式 1. 实现ApplicationListener接口 2. 实现InitializingBean接口 3. 使用@PostConstruct ...
- MySQL CREATE EVENT创建任务计划定时执行任务
自 MySQL5.1.6起,增加了一个非常有特色的功能–事件调度器(Event Scheduler),可以用做定时执行某些特定任务(例如:删除记录.对数据进行汇总等等),来取代原先只能由操作系统的计划 ...
- python中使用schedule模块定时执行任务
python中有一个轻量级的定时任务调度的库:schedule.他可以完成每分钟,每小时,每天,周几,特定日期的定时任务.因此十分方便我们执行一些轻量级的定时任务. 代码如下: import sche ...
- linux服务器定时执行python代码
这个问题我一直觉得比较麻烦,今天还是搞出来了. 一.前提需要知道什么: 1.需要操控linux服务器的终端框.一般是宝塔或者Xshell 2.服务器安装了python环境.没有安装的话可以先安装 3. ...
最新文章
- 图神经网络快速爆发,最新进展都在这里了
- mySQL 教程 第16章 MySQL复制
- html追加行clone,jQuery - 使用.clone()方法克隆拷贝元素
- controller 有两种写法,讨论一下两种写法的区别:
- pip install scikit-image on windows 失败 解决方案
- idea之springboot端口被占用/跳转到login
- Java HashMap 默认排序
- 4课:第一个单片机小程序 2020-11-15
- Mysql绿色版本安装
- python的开发环境
- PicGo搭建Gitee图库
- background 渐变背景
- 基于 HTML5 Canvas 的机房温度云图展示
- wireshark 安装与使用
- Java面试必背八股文[6]:Redis
- MDF,LDF格式文件还原数据库
- CISA国际信息系统审计师
- 一个典型的神经网络包括,神经网络的应用实例
- JAVA JSP水费管理系统JSP电费管理系统JSP缴费管理系统JSP水费缴费系统JSP水电费管理
- innodb_data_file_path参数的一些注意事项