php定时任务

php中执行定时任务有两种情况,一种是直接在linux服务器上直接创建cron服务,一种是在浏览器中执行。

在linux中时间是写死的,不能灵活变动。
在浏览器中执行比较灵活,比如打开一个网页后,从打开此网页开始,每十秒发送一个信息到手机端… 当要实现这样的需求时,用cron服务就不太理想啦!

此篇主要说一下第二种,怎么在浏览器中触发定时任务。

主要用到的一个php函数:sleep() 此函数延迟代码执行若干秒。
语法: sleep(seconds) —若成功,返回 0,否则返回 false。如果指定的描述 seconds 是负数,该函数将生成一个 E_WARNING。

例子:

<?php
echo date('h:i:s') . "<br />";

//暂停 10 秒
sleep(10);

//重新开始
echo date('h:i:s');

//输出结果:
//12:06:08
//12:06:18

?>

用此函数来做定时任务很简单,将其应用到 循环中 就能实现。
但是会遇到一个问题:php程序执行会超时

php.ini 中缺省的最长执行时间是 30 秒,这是由 php.ini 中的 max_execution_time变量指定,倘若你有一个需要颇多时间才能完成的工作,例如要发送很多电子邮件给大量收件者,或者要进行繁重的数据分析工作,服务器会在 30秒后强行中止正在执行的程序

第一种方法是修改 php.ini 中 max_execution_time 的数值,不过不是所有人都有权修改 php.ini。(修改后记的重启服务)

第二种方法是在 PHP 程序中加入 ini_set(‘max_execution_time’, ‘0’),数值 0 表示没有执行时间的限制。如果程序仍在测试阶段,推荐将时间设置一个数,避免程序错误导致服务器宕机。

第三种办法是在 PHP 程序中加入set_time_limit();来设定页面最久执行时间.
set_time_limit(0);//0表示没有限制

这样,这个简单的定时任务就可以实现啦!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值