我正在尝试使用由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()方法。