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

redis-queue消息隊列組件 消費沒有生效,請問是什么原因?

李天宇

按照手冊去做,下載安裝 粘貼代碼

運行以后在redis客戶端里可以看到消息投遞成功了,但是在消費里面打印得日志沒有任何東西,是不是沒有消費成功,可是也沒有任何報錯,搞不懂問題出在哪里

配置代碼

<?php
return [
    'default' => [
        'host' => 'redis://120.0.0.1:6379',
        'options' => [
            'auth' => '',       // 密碼,字符串類型,可選參數(shù)
            'db' => 0,            // 數(shù)據(jù)庫
            'prefix' => '',       // key 前綴
            'max_attempts'  => 5, // 消費失敗后,重試次數(shù)
            'retry_seconds' => 5, // 重試間隔,單位秒
        ]
    ],
];
<?php
return [
    'consumer'  => [
        'handler'     => Webman\RedisQueue\Process\Consumer::class,
        'count'       => 8, // 可以設置多進程同時消費
        'constructor' => [
            // 消費者類目錄
            'consumer_dir' => app_path() . '/queue/redis'
        ]
    ]
];

投遞代碼

<?php
namespace app\controller;

use support\Request;
use support\Log;
use Webman\RedisQueue\Redis;

class Index
{
    public function queue(Request $request)
    {
        // 隊列名
        $queue = 'send-mail';
        // 數(shù)據(jù),可以直接傳數(shù)組,無需序列化
        $data = ['to' => 'tom@gmail.com', 'content' => 'hello'];
        // 投遞消息
        Redis::send($queue, $data);
        // 投遞延遲消息,消息會在60秒后處理
        // Redis::send($queue, $data, 10);

        return response('redis queue test');
    }
}

消費代碼

<?php

namespace app\queue\redis;

use support\Log;
use Webman\RedisQueue\Consumer;

class MyMailSend implements Consumer
{
    // 要消費的隊列名
    public $queue = 'send-mail';

    // 連接名,對應 plugin/webman/redis-queue/redis.php 里的連接`
    public $connection = 'default';

    // 消費
    public function consume($data)
    {
        // 無需反序列化
        Log::info($data); // 輸出 ['to' => 'tom@gmail.com', 'content' => 'hello']
    }
}

2088 4 0
4個回答

李天宇

投遞消息方法執(zhí)行后 redis客戶端里就有數(shù)據(jù)了,但是消費方法里得日志卻是什么都沒有記錄,不清楚怎么回事

  • 稚出 2022-10-13

    你先在消費那里打印一下看看

  • chenh 2022-10-13

    php start.php start后 看下redis消費隊列是否正常啟動

  • 李天宇 2022-10-13

    好像是沒啥變化啊,我啟動沒看到有啥redis啟動成功得提示

  • 稚出 2022-10-13

    打開調(diào)試模式截圖

抽不完的寂寞
Log::info($data)

$data是數(shù)組,Log::info()不能傳數(shù)組,報錯了沒消費成功

  • 李天宇 2022-10-13

    我修改了這里,但是日志里什么都沒有,感覺根本沒有走這里

  • 抽不完的寂寞 2022-10-13

    你確認你啟動消費進程了?啟動界面截圖下呢

  • 李天宇 2022-10-13

    重啟了下,確實沒有啟動消費進程,消費進程配置代碼 是直接在 vendor文件下 webman/redis-queue/src/config/plugin/webman/redis-queue/process.php中 不知道是不是在這里 所以才啟動不了

  • 抽不完的寂寞 2022-10-13

    文檔都說了在 config/plugin/webman/redis-queue/process.php 里配置,搞不懂你為啥去vendor里改東西

  • 李天宇 2022-10-14

    問題是config/plugin/webman/redis-queue/process.php 這個路徑我安裝得框架 只有vendor里面才有 框架里得config下 沒有/plugin/webman/redis-queue/ 這個些目錄 直接就是 process.php

  • 抽不完的寂寞 2022-10-14

    我這正常,我猜測有可能你的composer版本太低了,沒生成那些目錄

  • 李天宇 2022-10-14

    嗯,我在本地從新下載了整個框架 安裝redis-queue組件 現(xiàn)在出來那個目錄了,配置完啟動成功了,應該是我線上得版本太低造成得

咸魚.php
  • powerbowen 2022-10-14

    我剛要發(fā)我的提問,大佬已經(jīng)先貼上了

  • 李天宇 2022-10-14

    謝謝,我得問題是版本太低造成得,現(xiàn)在已經(jīng)可以了

redis-queue有配置文件要啟動要配置你關聯(lián)的消費文件,不然你怎么消費```php
'consumer' => [
'handler' => Webman\RedisQueue\Process\Consumer::class,
'count' => 4, // 可以設置多進程同時消費
'constructor' => [
// 消費者類目錄
'consumer_dir' => app_path() . '/queue'
]
]

  • 李天宇 2022-10-14

    嗯嗯,有寫配置文件,我這個版本太了,所以出現(xiàn)問題,現(xiàn)在升級以后可以了

年代過于久遠,無法發(fā)表回答
??