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

bsworker添加onWorkerReload,重建定時(shí)器不工作,求指點(diǎn)?

dangpengsong

場(chǎng)景:系統(tǒng)運(yùn)行依賴定時(shí)器,非硬依賴,restart會(huì)比較耗費(fèi)時(shí)間,設(shè)備數(shù)量逐步增大的情況下,對(duì)業(yè)務(wù)產(chǎn)生影響的時(shí)間越來(lái)越長(zhǎng),項(xiàng)目又必須進(jìn)行版本迭代,所以自己添加了onWorkerReload回調(diào),在gatewayworker中啟用熱加載,但reload會(huì)導(dǎo)致定時(shí)器丟失,所以我在onWorkerReload中重建定時(shí)器,但無(wú)法正常運(yùn)行

問(wèn)題現(xiàn)象:restart時(shí)定時(shí)器可以正常運(yùn)行,reload后原有定時(shí)器丟失,在onWorkerReload中重建定時(shí)器,重建過(guò)程無(wú)報(bào)錯(cuò),亦有ID返回,但是定時(shí)器并未工作,多次reload會(huì)一直返回同一個(gè)ID

962 2 0
2個(gè)回答

dangpengsong

不能動(dòng)態(tài)顯示gif動(dòng)圖啊,下面時(shí)部分代碼:
events.php

/**
     * 進(jìn)程啟動(dòng)后初始化數(shù)據(jù)庫(kù)連接
     */
    public static function onWorkerStart($worker)
    {
        //程序啟動(dòng)記錄日志
        self::$db    = new DB(DB_HOST, DB_USERNAME, DB_PASSWORD, DB_DATABASE, DB_PORT);
        self::$redis = new Redis();
        self::$redis->pconnect(REDIS_HOST, REDIS_PORT) or die('connect failed');
        self::$redis->auth(REDIS_PASS) or die('confirm password failed');
        self::$redis->setOption(Redis::OPT_READ_TIMEOUT, -1);
        Timer::add(50, function ($db, $redis) {
            $db->query('select 1;');
            $redis->time();
        }, array(self::$db, self::$redis));
        self::$dotcontrol = new DotControl($worker->id, self::$db, self::$redis);
        // self::$appcontrol = new AppControl(self::$db, self::$redis);
        // self::$webcontrol = new WebControl(self::$db, self::$redis);
    }
    /**
     * 進(jìn)程重啟動(dòng)后初始化數(shù)據(jù)庫(kù)連接,重建定時(shí)器
     */
    public static function onWorkerReload($worker)
    {
        self::onWorkerStart($worker);
        foreach(Gateway::getClientIdListByGroup('worker::'.$worker->id) as $client_id){
            self::$dotcontrol->create_sender_timer($client_id);
        }
    }

dotcontrol.php

/**
     * 周期定時(shí)器
     */
    public function create_sender_timer($client_id)
    {
        Timer::add(3,function($client_id){
            log_debug($client_id);
        },[$client_id]);
    }
  • 暫無(wú)評(píng)論
walkor 打賞

onWorkerReload是收到reload信號(hào)后執(zhí)行的回調(diào),執(zhí)行完畢后進(jìn)程退出。
重建定時(shí)器應(yīng)該放到onWorkerStart里

  • dangpengsong 2022-04-24

    噢,原來(lái)如此,我以為是進(jìn)程重啟后運(yùn)行onWorkerReload,原來(lái)執(zhí)行完畢后進(jìn)程退出了,謝謝老大

年代過(guò)于久遠(yuǎn),無(wú)法發(fā)表回答
??