为什么rabbitmq消息显示为空队列消费者在laravel



我有一个使用rabbitmq的项目设置,它可以使用包

提供的默认作业处理程序发送消息并从laravel接收消息。
'job' => VladimirYuldashevLaravelQueueRabbitMQQueueJobsRabbitMQJob::class,

但是我想从python甚至从rabbitmq仪表板本身接收消息,

因此,我配置了作业处理程序
'job' => AppJobsRabbitMQJob::class,

use VladimirYuldashevLaravelQueueRabbitMQQueueJobsRabbitMQJob as BaseJob;
class RabbitMQJob extends BaseJob
{
/**
* Fire the job.
*
* @return void
*/
public function fire()
{
$payload = $this->payload();
Log::notice($payload);

$class = HandlePythonResponse::class;
$method = 'handle';
($this->instance = $this->resolve($class))->{$method}($this, $payload);

$this->delete();
}
}

每次我发送消息到这个应用程序,我得到以下错误

[2022-04-28 12:01:33] local.ERROR: Trying to access array offset on value of type null {"exception":"[object] (ErrorException(code: 0): Trying to access array offset on value of type null at /Users/angwamosees/Documents/moses/app1/vendor/laravel/framework/src/Illuminate/Queue/Jobs/Job.php:315)

请有人知道为什么兔子mq发送空消息

在努力调试问题是什么之后,我明白了从rabbitmq传递到laravel的数据格式必须是JSON格式。并且必须将工作和液体作为有效载荷的一部分。我希望这对以后的人有所帮助。格式如下

{
"job":"job_name",
"data":90,
"uuid":"uuid-equivalent-value"
}

最新更新