NodeJS 推送队列,由 Laravel Worker 消耗

Luc*_*ano 5 php queue node.js laravel

我正在尝试使用节点应用程序发送到 SQS 的消息。因此,“推送”操作由服务器 A 上的 Node App 执行,“监听”操作由服务器 B 上的 Laravel App 执行。

我的问题:我不知道如何格式化要使用的有效负载php artisan queue:work

以前有人经历过这个并找到解决方案吗?

谢谢!

Luc*_*ano 4

找到了!经过一些测试,我终于设法从队列中读取消息。

基本上,有效负载必须具有一个包含负责执行工作的类的作业属性和一个包含实际数据的数据属性。就像是:

var payload = {
        job: 'App\\Jobs\\MyTestJob@handle',
        data: {user: foo, email: bar@example.com}
    };
Run Code Online (Sandbox Code Playgroud)

然后有效负载将被编码为 json 字符串并发送到 SQS。

在 Laravel 方面,Job 类如下所示:

public function handle($job, $data){}
Run Code Online (Sandbox Code Playgroud)

队列处理程序将自动解码并将属性注入到payload.job中指定的方法上。如果没有指定方法,Laravel 将尝试运行 ::fire() 方法。