为什么rabbitmq消息对laravel中的队列使用者显示为空

xriantvc  于 2022-11-08  发布在  RabbitMQ
关注(0)|答案(1)|浏览(204)

我有一个项目设置与rabbitmq,它的工作发送消息,也接收消息从laravel到laravel使用默认的作业处理程序提供的包

'job' => VladimirYuldashev\LaravelQueueRabbitMQ\Queue\Jobs\RabbitMQJob::class,

但是我想从python甚至从rabbitmq Jmeter 板本身接收消息,
因此,我配置了作业处理程序

'job' => \App\Jobs\RabbitMQJob::class,

use VladimirYuldashev\LaravelQueueRabbitMQ\Queue\Jobs\RabbitMQJob 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)

请问有没有人知道为什么rabbit mq会发送空消息

pgky5nke

pgky5nke1#

在努力调试问题所在之后,我了解到从rabbitmq传递到laravel的数据格式必须是JSON格式。并且必须将job和uuid作为有效负载的一部分。我希望这对以后的人有所帮助。格式如下所示

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

相关问题