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

當(dāng)redis消息隊(duì)列出現(xiàn){redis-queue}-failed,后面將不再消費(fèi)

掌柜

問題描述

為了提高API的并發(fā)能力,我將一個(gè)文章接口的請(qǐng)求增加閱讀量views字段的工作放進(jìn)了消息隊(duì)列中。
但有時(shí)進(jìn)行代碼的更迭的時(shí)候,redis-queue的隊(duì)列還沒有完成消費(fèi),就會(huì)變?yōu)閒ailed放進(jìn)同一個(gè)key中,之后消費(fèi)就會(huì)卡住,這個(gè)key中后面會(huì)追加到無限大。
有什么辦法可以避免這種情況?

為此你搜索到了哪些方案及不適用的原因

// queue
class ViewsUpdateSend implements Consumer
{
    // 要消費(fèi)的隊(duì)列名
    public $queue = 'zrViews';
    // 連接名,對(duì)應(yīng) plugin/webman/redis-queue/redis.php 里的連接`
    public $connection = 'default';
    // 消費(fèi)
    public function consume($data)
    {
        // 獲取ID
        $id = explode(',', base64_decode($data))[0];
        // 增加瀏覽量
        Article::find($id)->increment('views');
    }
}
// 控制器
            //判斷文章是否存在
            if (!$article) {
                $data = json_encode([
                    'code' => 0,
                    'msg' => '暫無內(nèi)容',
                ]);
            } else {
                Client::send('zrViews', $i);
729 1 0
1個(gè)回答

latin

失敗會(huì)有日志,從{redis-queue}-failed取出來幾條看下日志,不會(huì)無緣無故失敗,失敗原因找到解決就好了吧。
你日志都沒貼出來

  • 掌柜 2024-09-26

    正常沒有失敗,失敗原因剛剛說了呀就是更新代碼時(shí)候?qū)α袥]有消費(fèi)完,這個(gè)時(shí)候第一條就會(huì)failed,之后后面的就會(huì)堵塞,也沒有辦法編輯key把第一條刪掉,因?yàn)殛?duì)列不斷在擴(kuò)大長(zhǎng)度,只能刪除整條key,這樣后面就正常了。

  • latin 2024-09-26

    {redis-queue}-failed 里面放的是所有失敗隊(duì)列及日志,還要看具體日志。{redis-queue}-failed后面會(huì)追加到無限大說明一直在消費(fèi),但是因?yàn)槟撤N原因失敗了,還是要看日志為什么失敗

  • 掌柜 2024-09-26

    我下次更新代碼時(shí)候看一下日志,感謝回答

??