定时器关闭一次后无法再开启

a1328383190
// 添加定时任务
function addtasks()
{
    global $timer_id;
    global $a_switching_time;
     echo "a_switching_time";
    echo $a_switching_time."\n";
    echo $timer_id."\n";
    echo 789;
    // 每2.5秒执行一次
    // $a_switching_time = 30;
    if(!isset($timer_id))
    {
        $timer_id = Timer::add($a_switching_time, function ()use (&$timer_id) {
            global $daping_type; 
            global $screen_num; 
            if ($screen_num == 3) {
                $screen_num = 1;
            } else {
                $screen_num ++;
            }
            runscreen();
            echo date("Y-m-d H:i:s")."\n";

             //echo $timer_id;
        });
    }
}
 
// 删除定时任务
function delecttasks()
{
    echo 97;
    global $timer_id;
    if(isset($timer_id)){
        Timer::del($timer_id);
        $timer_id = "";
    }
    // return false;
}

我需要根据具体情况来开启定时任务和关闭定时任务,但是关闭过一次定时任务之后,定时任务就不能开启了

3495 4 0
4个回答

a1328383190
  • 暂无评论
wsad7900031

你贴全代码了?你删除了定时器要重新添加一个啊。

  • a1328383190 2019-09-12

    我就是删了再添加的

  • a1328383190 2019-09-12

    global $a_switching_time;
    if ($a_switching_time != $data1 && is_numeric($data1) && $data1 > 0) {
    global $daping_type;

                        delecttasks();
                        $a_switching_time = $data1;
                        //var_dump($a_switching_time);
    
                        addtasks();
                        $ret = true;
                    }
wsad7900031
if(!isset($timer_id))
{
    $timer_id = Timer::add($a_switching_time, function ()use (&$timer_id) {
        global $daping_type; 
        global $screen_num; 
        if ($screen_num == 3) {
            $screen_num = 1;
        } else {
            $screen_num ++;
        }
        runscreen();
        echo date("Y-m-d H:i:s")."\n";
 
         //echo $timer_id;
    });
}
}

你添加定时器这里用了isset,下面删除定时器你只是赋值为空字符串,要么你把这里改为empty,要么就删除定时器的时候unset你的timerid

a1328383190

问题解决了谢谢

  • 暂无评论
年代过于久远,无法发表回答
×
🔝