php until,PHP: time_sleep_until - Manual

这个PHP函数用于在达到指定时间之前暂停处理,尤其适用于资源密集型的命令行脚本。它允许设置一个最小的睡眠时间,即使目标时间已过,确保不会过度频繁地访问数据库或服务。通过调整参数,可以实现不同精度的延迟。
摘要由CSDN通过智能技术生成

Not realising that this function existed, I wrote something similar, but it has the additional facility to specify a minimum pause even if the target time has already been reached, for instance in a processor-intensive loop.

It's in seconds rather than microseconds (it's intended for heavy-duty CLI scripts), but that could easily be changed by using microtime(true) and usleep if greater granularity was required.

* Pause processing until the specified time, to avoid hammering a DB or service

*

* @param int $target_time Timestamp

* @param int $min_sleep Always sleep for a minimum number of seconds,

*    even if the target timestamp has already passed.

*     Default 0, meaning only sleep until the target timestamp is reached.

*

* @example

while ( ! $finished )

{

$minimum_start_of_next_loop = time() + $min_secs_per_loop;

# DO STUFF THAT MAY OR MAY NOT TAKE VERY LONG

sleep_until( $minimum_start_of_next_loop, $min_pause_between_loops );

}

*/functionsleep_until($target_time,$min_sleep=0)

{$time_now=time();$time_to_target=$target_time-$time_now;// If we've already reached the target time, that's fineif ($time_to_target<=$min_sleep)

{// If required, sleep for a bit anywaysleep($min_sleep);

}

else

{// Sleep for the number of seconds until the target timesleep($time_to_target);

}

}?>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值