我在PHP中使用for循环(100条记录)处理一些数据。我在循环中调用API,大多数时候所有记录都在预期的时间内处理。但是有时候任何一个循环都会花费这么多时间,因为等待api响应会显着增加整个处理时间。
如果任何单个循环花费超过x秒,那么在PHP中是否有任何方法可以“继续”循环,这样我们就可以在预期时间内处理整个记录,但代价是几个未处理的记录?
答案 0 :(得分:0)
如果您使用CURL来调用API,则可以检查CURLOPT_CONNECTTIMEOUT
和CURLOPT_TIMEOUT
(ref here)。
否则,实现起来并不容易。您应该创建一个多线程环境,其中一个工作线程运行您的循环执行,另一个线程检查执行是否花费太长时间。