NodeJS推送队列,由Laravel worker使用



我正在尝试使用由Node应用程序发送到SQS的消息。因此,"push"动作由Node应用程序在服务器a上执行,"listen"动作由Laravel应用程序在服务器b上执行。

我的问题:我不知道如何格式化与php artisan queue:work消耗的有效负载。

有人经历过这种情况并找到解决方案吗?

谢谢!

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

基本上,有效负载必须有一个带有负责执行工作的类的job属性和一个带有实际数据的data属性。比如:
var payload = {
        job: 'App\Jobs\MyTestJob@handle',
        data: {user: foo, email: bar@example.com}
    };

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

在Laravel端,Job类是这样的:

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

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

最新更新