如何实现 for sleep ?
public function index(Request $request) { $counter = 0; for ($i = 1; $i <= 10; $i++) { sleep(1); $counter++; } return $counter; }
用官方的限速器
只是想请求迟点返回呢?
worekrman 5.1支持 Timer::sleep(); ,支持延迟当前请求,但不阻塞进程。
Timer::sleep();
composer require revolt/event-loop
设置 config/process.php 里webman进程的
'eventLoop' => Workerman\Events\Fiber::class,
use Workerman\Timer; public function index(Request $request) { $counter = 0; for ($i = 1; $i <= 10; $i++) { Timer::sleep(1); $counter++; } return $counter; }
老大,如果不使用event-loop 是不是这个进程就会阻塞,我想在队列进程里使用这个,会导致这个队列进程整个阻塞吗?
延迟队列能解决你的需求吗?
不能。。因为是在队列里面请求远程的部分代码,对方限流,然后可能会处理延迟一下,除非把请求远程再放个队列,但是改动有点大
用官方的限速器
只是想请求迟点返回呢?
worekrman 5.1支持
Timer::sleep();
,支持延迟当前请求,但不阻塞进程。设置
config/process.php 里webman进程的
老大,如果不使用event-loop 是不是这个进程就会阻塞,我想在队列进程里使用这个,会导致这个队列进程整个阻塞吗?
延迟队列能解决你的需求吗?
不能。。因为是在队列里面请求远程的部分代码,对方限流,然后可能会处理延迟一下,除非把请求远程再放个队列,但是改动有点大