NodeJS 推送队列,由 Laravel worker 使用

NodeJS push queue, consumed by Laravel worker

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

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

有没有人遇到过这种情况并找到了解决方案?

谢谢!

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

基本上,有效负载必须有一个 job 属性,class 负责执行工作,data 属性 与实际数据。类似于:

var payload = {
        job: 'App\Jobs\MyTestJob@handle',
        data: {user: foo, email: bar@example.com}
    };

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

在 Laravel 方面,作业 class 看起来像这样:

public function handle($job, $data){}

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