php定时任务优缺点,PHP定时任务

PHP属于弱类型解释型语言,它的实现决定了它没有Java和.Net这种AppServer的概念, 而http协议是一个无状态的协议, PHP只能被用户触发调用, 调用后会自动退出内存, 没有常驻内存, 就没有办法准确的定时处理。

如果需要用PHP定时执行某些任务的话, 可以有如下方法:

1、Linux下crontab, windows下计划任务

2、set_time_limit(0);

ignore_user_abort(true);

死循环

第一种:crontab定期执行的php文件,一般需要有个表来记录每个任务的名称、当前进程ID、更新时间及进程开始ID 等信息。批处理过程包括:执行前准备、执行、执行后处理,整个处理过程可以利用OO思想来封装个批处理基类,每个批处理任务可以继承这个基类来实现数据的处理。

第二种:通过访问此文件触发执行,存在Apache服务器重启后或机器重启(windows环境)后终止的问题。示例如下:ignore_user_abort(true); // 设置关闭浏览器后也可执行

set_time_limit(0); // 设置相应时间无限制,原默认30s

function write_txt()

{

$filename = 'test.txt';

if (!file_exists($filename))

{

$fp = fopen($filename, 'w');

fclose($fp);

}

$fp = fopen($filename, 'r+');

$str = file_get_contents($filename);

$str .= date('Y-m-d H:i:s')."\r\n";

fwrite($fp, $str);

fclose($fp);

}

function do_cron()

{

write_txt();

sleep(30);

}

while (1)

{

do_cron();

}

connection_aborted() — 检查客户端是否已经断开 断开则返回1,否则返回0

connection_status — 返回连接的状态位 0 - NORMAL(正常); 1 - ABORTED(异常退出); 2 - TIMEOUT(超时)

本条技术文章来源于互联网,如果无意侵犯您的权益请点击此处反馈版权投诉

本文系统来源:php中文网

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值