定时器里面有类似sleep的方式主动阻塞么

Forsend

在webman创建了一个自定义进程,定时器每隔1秒做一些业务
根据业务结果,某些情况下间隔一段时间再执行,类似这样的

<?php
namespace process;

use Workerman\Timer;

class TaskTest
{

    public function onWorkerStart()
    {
        // 每隔1秒做一些业务
        Timer::add(1, function(){
            $result = doSomeThing();
            if ($result == '特定值') {
                sleep(30);
            }
        });
    }

}

看手册,是不能用sleep函数的,请问有替代方法么?或者这种情况怎么实现比较好

1082 3 0
3个回答

Mr_Deng

截图

  • 暂无评论
tanhongbin

你就不会设置个redis的值,判断有值啥的就不执行了,需要执行的时候删除这个redis的值,曹丕的媳妇进菜园

  • 暂无评论
xiuwang

骚操作

        Timer::add(1, function(){
           static $i = 0;
           if (--$i > 0) return;
            $result = doSomeThing();
            if ($result == '特定值') {
                $i = 30;
            }
        });
  • 暂无评论
年代过于久远,无法发表回答
🔝