php 计划任务 curl,通过Task Scheduler定时运行调用cURL的PHP脚本 | 学步园
PHP本身没有定时自动执行的功能,也不支持多线程。但是结合Task Scheduler和cURL,就可以弥补PHP的上述两个缺陷,同时还可以脱离Apache服务器环境,在任意路径下运行PHP脚本。
知识准备
调用cURL多程序抓取网页的PHP脚本
batch.php
$urls = array(
'http://www.baidu.com',
'http://www.csdn.net',
'http://www.google.com.hk'
);
// 初始化多线程
$mh = curl_multi_init();
// 向多线程中添加每个单独的cURL
$conn = array();
foreach ($urls as $key => $url) {
$conn[$key]= curl_init($url);
curl_setopt($conn[$key],CURLOPT_HEADER, 0);
curl_setopt($conn[$key],CURLOPT_RETURNTRANSFER, 0);
curl_multi_add_handle($mh,$conn[$key]);
}
// 执行cURL多线程
do {
$mrc= curl_multi_exec($mh, $active);
}
while ($mrc == CURLM_CALL_MULTI_PERFORM);
while ($active && $mrc == CURLM_OK){
if(curl_multi_select($mh) != -1) {
do{
$mrc= curl_multi_exec($mh, $active);
}
while($mrc == CURLM_CALL_MULTI_PERFORM);
}
}
// 释放多线程中的每个cURL线程
foreach ($urls as $key => $url) {
curl_error($conn[$key]);
curl_multi_remove_handle($mh,$conn[$key]);
curl_close($conn[$key]);
}
// 关闭多线程
curl_multi_close($mh);
?>
需要说明的是,cURL在PHP中的多线程处理其实并不是真正的多线程,而是用单线程批处理模拟的多线程效果。
设置环境变量
为了方便调用php.exe,需要在环境变量的系统变量Path中添加php.exe所在目录的路径,如下图所示:
设置Windows Task Scheduler
Windows 7环境下,启动Task Scheduler(任务计划程序)的方式有两种,分别是:
1. 控制面板→管理工具→任务计划程序;
2. 开始→运行→输入“任务计划程序”或者“scheduled task”,回车。
设置计划任务来自动调用PHP脚本的步骤如下:
1. 点击“创建基本任务”,进入导航
2. 第一步,输入计划任务的名称和描述
3. 设置任务开始的时间
4. 设置任务执行的具体操作
前述调用cURL的PHP脚本放在E盘根目录下,脱离了Apache服务器环境。
此处填写的程序(或脚本)和参数需要再命令行下测试通过方才有效。
5. 完成后打开属性对话框,在“触发器”中点击“编辑”,设置自动重复执行的间隔
以上就是设置任务计划程序的过程,之后每隔5分钟会弹出一个php.exe的DOS窗口,则设置成功。
php 计划任务 curl,通过Task Scheduler定时运行调用cURL的PHP脚本 | 学步园相关推荐
- synctoy 自动运行_安排SyncToy在Windows 7中使用Task Scheduler自动运行
synctoy 自动运行 SyncToy is a great tool to help you keep your files and folders synced between drives a ...
- curl socket 访问_使用Curl、socket、file_get_contents三种方法POST提交数据 | 学步园
# <?php # /** # * Socket版本 # * 使用方法: # * $post_string = "app=socket&version=beta"; ...
- 定时循环调用FastCopy自动备份脚本
@echo offfor /l %%i in (1,1,2147483647) do (echo %%iTIMEOUT /T 180"C:\Users\admin\FastCopy\fast ...
- task文件服务器无法输入,Win10系统无法启动task scheduler服务的解决方法
Win10无法启动"task scheduler服务"怎么办?task scheduler是一个任务调度程序,用户可以使用task scheduler自动运行计算机任务.在Win1 ...
- Windows 任务计划程序(task scheduler)介绍
一.入口 任务计划程序在windows绝大多数版本都是系统自带,可以通过一下入口找到 1.开始--(windows)管理工具 2.服务器管理器--工具(server版) 3.我的电脑(此电脑)--点击 ...
- Windows任务计划程序Task Scheduler笔记
微软文档居然搜不到了 Windows任务计划程序已经存在许多年了,原来在微软的TechNet上有详细的操作介绍的,现在发现网站改版,原来的介绍居然搜索不到了,微软的平台上出现这种事情,也是比较吃惊了. ...
- 无法打开计算机上的event log服务,win 2008 r2无法启动(Task Scheduler和windows eventlog 服务...
Windows Server 2008 r2: 无法启动(Task Scheduler和windows eventlog 服务) =================================== ...
- win10系统CompatTelRunner或task scheduler占用CPU过高的解决方法
win10系统的"C:\Windows\System32\CompatTelRunner.exe"占用过高的CPU,而且经常莫名其妙的启动,该问题其实是"客户体验改善计划 ...
- python每天定时9点执行_win10设置Python程序定时运行(设置计划任务)
楼主最近写了一个简单的Python程序,想让这个小程序每天上午8点定时运行一次,因为我的电脑是Windows系统,无法使用Linux下强大的crontab命令,所以我只好求助于度娘.我搜到了好几个相关 ...
最新文章
- 又一个jquery+flash上传插件
- PW Live 直播 | 北邮博士生纪厚业:异质图神经网络之模型和应用
- 牛客题霸 NC24 删除有序链表中重复的元素-II
- 架构-浅谈MySQL数据库优化
- php print div,JavaScrip实现PHP print_r的数功能(三种方法)
- python背景图片加载代码_2019.12.05-背景图片设置代码
- hihocoder第238周:杨氏矩阵的个数
- Mac IDEA切换主题颜色
- 算法(arithmetic)
- 计算机没有打字键盘显示不出来,键盘打不出字怎么回事
- 忘记apusic应用服务器web控制台admin密码怎么办?
- 客服充值退款小套路你们会识别吗?
- WebLogic 10.3.6.0 部署安装问题(简装版)
- Centos 7yum安装LAMP
- Java学习查漏补缺及知识点整理
- 根据地址生成客户地图及热力图(百度地图API)
- 国产芯片---带使能端、轨到轨的运算放大器MS8093
- 关于计算机房弱电工程的书籍,弱电工程计算机机房设计规范..doc
- 深圳大学计算机科学,深圳大学计算机科学与技术-深圳大学计算机与软件学院.PDF...
- php 文字输入输出
热门文章
- recyclerview item点击无效_让你彻底掌握RecyclerView的缓存机制
- 并联串联混合的电压和电流_串、并联电路中的电流与电压规律
- 线程的状态转换、sleep()、wait()、yeild()、终止线程的方法、线程之间的协作(join()、wait() notify() notifyAll()、await() signal() )
- java泛型基类list_泛型:列表?扩展Animal与List Animal相同吗?
- signal(SIGCHLD, SIG_IGN) 和 signal(SIGPIPE, SIG_IGN) 使用场景
- DNS、IP地址、子网掩码和网关
- html tab选项卡 控件,tab选项卡插件
- 能源36号文解读_中国能源报
- 计算机考试单招考试面试,单招考试考什么内容?面试一般会问什么?
- Codeforces div2 #499 B. Planning The Expedition 大水题