redis列队一直提示“'Array to string conversion”

问题描述

用的文档示例,投递消息的时候经常出现“'Array to string conversion”

投递消息

<?php
namespace app\controller;

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

class Index
{
    public function queue(Request $request)
    {
        // 队列名
        $queue = 'send-mail';
        // 数据,可以直接传数组,无需序列化
        $data = ['to' => 'tom@gmail.com', 'content' => 'hello'];
        // 投递消息
        Redis::send($queue, $data);

        return response('redis queue test');
    }

}

消费

<?php

namespace app\queue\redis;

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)
    {
        // 无需反序列化
        var_export($data); // 输出 ['to' => 'tom@gmail.com', 'content' => 'hello']
    }
    public function onConsumeFailure(\Throwable $e, $package)
    {
        echo "consume failure\n";
        echo $e->getMessage() . "\n";
        // 无需反序列化
        var_export($package); 
    }
}

操作系统及workerman/webman等框架组件具体版本

php 8.4

107 2 0
2个回答

xiuwang

报错一般都会告诉你哪个文件 哪一行报错,而且会有调用栈,根据这些信息就定位到了。
不发报错文件行数和调用栈,别人不知道具体哪里问题。

  • 暂无评论
Tinywan

看你这报错,和redis没关系

  • 暂无评论
🔝