1 定时是有执行的
2 是逻辑代码问题,定时器不能直接获取$_SESSION
3 感谢 @six 
1  执行php7.4  start.php status 命令,   状态都是idle 且 单个进程的定时器看了 基本不超过3个
2  Event.php 代码中,没删除定时器的代码
3  正式和测试的都是采取静态单文件的php.4,环境应该是一样
4  测试环境正常,正式不正常
5  正式和测试的代码采取restart -d 执行,且版本号一样
6  我该如何排查比较合适
public static function onWebSocketConnect($client_id, $data)
{
        $_SESSION['request_data'] = $data;
        self::isDebug($data['get']['debug']??"");
        $timer_id = Timer::add(5,function () use($client_id,&$timer_id){
            // 测试环境有执行,正式没有,没想到什么原因会这样,很神奇
            if(self::isDebug()){
                Gateway::sendToClient($client_id, WsData::dataPackJson(
                    WsData::A_OK,[],"调试模式 定时任务ID执行:{$timer_id}"));
            }
            self::auth();
            if(empty($_SESSION['auth_id'])){
                Gateway::closeClient($client_id, WsData::dataPackJson(
                    WsData::A_AUTH_MISS,[],"请先认证_v1"));
            }
        },[],false);
        if(self::isDebug()){
            //有发送
            Gateway::sendToClient($client_id, WsData::dataPackJson(
                WsData::A_OK,[],"调试模式 定时任务ID开始:{$timer_id}"));
        }
}
 public static function isDebug($data = null): bool
    {
        if (func_num_args() <= 0) {
            return !empty($_SESSION['request_debug']);
        }
        $_SESSION['request_debug'] = $data == "jQfSfuGdzMVdDa";
        return $_SESSION['request_debug'];
    }
                    
定时器是否执行你要记录日志或者输出点数据到重点看下,而不是靠你业务逻辑来判定。直接在定时器里第一行打日志或者echo 点东西看下执行到没。
还有,定时器里不能用
$_SESSION,定时器里用$_SESSION业务逻辑必然出现bug,定时器里用Gateway的session接口