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

如何在服務(wù)停止時(shí)執(zhí)行清理工作?

forwebreg

onClose在stop的時(shí)候并不會(huì)觸發(fā)啊

753 2 0
2個(gè)回答

forwebreg

現(xiàn)在的設(shè)想是這樣
在數(shù)據(jù)庫中有一個(gè)待辦清單
workerman onWorkerStart $worker->id === 0的進(jìn)程
讀取待辦清單 send到queue中
所有進(jìn)程訂閱隊(duì)列進(jìn)行處理
完成后在數(shù)據(jù)庫中標(biāo)記完成
當(dāng)workerman關(guān)閉時(shí)需要清空隊(duì)列 否則下次啟動(dòng) 會(huì)重復(fù)send

現(xiàn)在只能在初始化的時(shí)候去清空隊(duì)列

$redis = new Redis('redis://' . $configs['redis']['host'] . ':' . $configs['redis']['port'], $configs['redis']);
$redis->del(['{redis-queue}-waiting' . QUEUE_NAME, '{redis-queue}-delayed' . QUEUE_NAME, '{redis-queue}-failed' . QUEUE_NAME]);
  • 暫無評(píng)論
walkor 打賞

不要用onWorkerStop,因?yàn)閞eload也會(huì)觸發(fā)。
用 $onMasterStop


Worker::$onMasterStop = function () {
    echo "Master stop\n";
};
``
  • 暫無評(píng)論
??