跳到内容

wikimedia/mediawiki-libs-WaitCondition循环

最新稳定版本 许可证

PHP的等待条件循环

此类用于等待达到条件,具有以下能力指定超时。当条件回调时,该条件被视为已达到返回CONDITION_REACHED或true。CONDITION_ABORTED也可用于停止循环。

此外,可以注入“工作”回调来准备有用的工作,而不是简单地使当前线程休眠或阻塞I/O。循环将运行这些回调之一每次迭代检查条件回调时,只要还有剩余的运行时间。

循环类将在重试之前自动重试条件或usleep(),取决于CPU使用情况。低CPU使用率和大量实时通道用于检测条件回调是否使用阻塞I/O。不会使用usleep()直到所有“工作”回调运行。这意味着条件回调可以可以是“即时”CPU绑定检查,也可以是一个有小超时的阻塞I/O调用。两者都有案例应该在没有CPU密集型自旋循环的情况下自动运行。

有关库的其他文档可以在上找到mediawiki.org网站.

用法

//预计算一些稍后需要的值
$结果=无效的$工作回调=功能()使用( &$结果) {$结果= ($结果!==无效的) ?$结果:$->doWork(doWork)();返回 $结果}$=新的 等待条件循环(功能()使用( ... ) {如果(...) {//达到条件;停止回路
            返回 等待条件循环::条件_已完成}//未达到条件;继续检查
        返回 等待条件循环::条件_内容},3,//超时(秒)[$工作回调]);$地位=$->援引();//CONDITION_*常量

//稍后根据需要调用$workCallback

运行测试

编写器安装作曲家测试