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() 方法。
我正在尝试使用节点应用程序发送到 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() 方法。