国产+高潮+在线,国产 av 仑乱内谢,www国产亚洲精品久久,51国产偷自视频区视频,成人午夜精品网站在线观看

怎么在定時(shí)器內(nèi)部關(guān)閉自身定時(shí)器?

lichao

問題:
我發(fā)送一個(gè)信息,要求在明天中午12:00點(diǎn),發(fā)給所有在線用戶,然后關(guān)閉此定時(shí)器。,

我的實(shí)現(xiàn):

$time_interval =60;
\Workerman\Lib\Timer::add($time_interval, function($info,$onlinetime)
{
    if(time()>=$onlinetime)
    {
        $info=json_encode($info);
        Gateway::sendToAll($info);

        (在這里怎***_么_關(guān)閉這個(gè)定時(shí)器)

                }else
    {

        echo '時(shí)間未到';
    }

},array($info,$onlinetime));
5914 3 0
3個(gè)回答

walkor 打賞
global $timer_id;
$time_interval =60;
$timer_id = \Workerman\Lib\Timer::add($time_interval, function($info,$onlinetime)
{
    if(time()>=$onlinetime)
    {
        $info=json_encode($info);
        Gateway::sendToAll($info);
        global $timer_id;
        \Workerman\Lib\Timer::del($timer_id);
    }
    else
    {
        echo '時(shí)間未到';
    }
},array($info,$onlinetime));

或者這樣也行


$time_interval =60;
$timer_id = \Workerman\Lib\Timer::add($time_interval, function($info,$onlinetime)use(&$timer_id)
{
    if(time()>=$onlinetime)
    {
        $info=json_encode($info);
        Gateway::sendToAll($info);
        \Workerman\Lib\Timer::del($timer_id);
    }
    else
    {
        echo '時(shí)間未到';
    }
},array($info,$onlinetime));
  • lichao 2015-10-03

    講解的很清晰,一看就明白 了,謝謝。

  • fdream 2015-10-24

    第二個(gè)寫法不行的吧

fdream

第一種方式在有多個(gè)計(jì)時(shí)器的時(shí)候會(huì)不會(huì)引起問題?
第二種方式親測不行,debug模式下會(huì)報(bào) Undefined variable 錯(cuò)誤。
我的解決方式是模擬js的寫法,每次添加一個(gè)非永久計(jì)時(shí)器,然后在內(nèi)部如果滿足某些條件則直接return,否則繼續(xù)添加這個(gè)計(jì)時(shí)器。

$timer_func = function($some_var, $timer_func) {
  if (/_something_/) return;
  //do something
  \Workerman\Lib\Timer::add(10, $timer_func, , false);
};
\Workerman\Lib\Timer::add(10, $timer_func, , false);

大概就是這種寫法,經(jīng)過測試是沒問題的

  • 暫無評論
walkor 打賞

@fdream
第一種多個(gè)定時(shí)器會(huì)有問題,全局變量timer_id會(huì)被覆蓋
第二種肯定沒問題,注意use里面$timer_id前有個(gè)引用&
定時(shí)器內(nèi)銷毀當(dāng)前定時(shí)器可以參考手冊 Timer::add 中實(shí)例7 實(shí)例8
http://doc.workerman.net/timer/add.html

  • 暫無評論
年代過于久遠(yuǎn),無法發(fā)表回答
??