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

busy進(jìn)程 log出現(xiàn)redis錯誤

aidec

您好,我的workerman運(yùn)行定時發(fā)送email的任務(wù)
每隔一段時間就會出現(xiàn)busy的狀況(大概運(yùn)行20天就會出現(xiàn))
restart后又能在使用20天
我看workerman.log會出現(xiàn)這樣的錯誤

2021-09-23 08:07:07 pid:13187 Worker[13187] process terminated with ERROR: E_ERROR "Uncaught RedisException: read error on connection to localhost:6379 in /var/xxxxxx/autoWriteLog.php
Stack trace:
#0 /var/xxxxxx/autoWriteLog.php(280): Redis->lLen('OrderSe...')

使用的是 use Workerman\Redis\Client;
這是redis連線超時的緣故嗎?

2318 2 0
2個回答

xiuwang

Uncaught RedisException: read error on connection to 這個是redis擴(kuò)展的報錯。

autoWriteLog.php 里的redis實例在onWorkerStart里初始化,不要提前初始化

  • aidec 2021-09-23

    我的確是提前初始化,我有開好幾個worker
    使用global $redis的方式
    那我再改成個別在每個worker的onWorkerStart new Redis
    謝謝您的幫助

  • aidec 2021-09-23

    在請問一下,我的onWorkerStart 里面有一個timer
    new redis 要寫在 timer里面還是外面

  • xiuwang 2021-09-24

    一般來說都可以。

  • aidec 2021-09-24

    感謝您

小陽光

1 redis鏈接在每個進(jìn)程啟動后鏈接

2 出現(xiàn)redis擴(kuò)展拋出來的異常,丟棄此鏈接,重試獲取鏈接

public static function __callStatic($name, $arguments)
{
try {
return static::$_manager->connection()->{$name}(... $arguments);
} catch (\RedisException $ex) {
Log::info('redis 斷線重連');
try {
static::$_manager->connection()->disconnect();
} catch (\Exception $exception) {
}
self::start(null);//這里在鏈接redis
return static::$_manager->connection()->{$name}(... $arguments);
}
}

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