用的文档示例,投递消息的时候经常出现“'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);
}
}
php 8.4

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