微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在 Laravel Job Payload 中为外部应用程序添加其他字段

如何解决如何在 Laravel Job Payload 中为外部应用程序添加其他字段

similar question 的现有答案不能回答我当前的问题,因为创建自己的队列管理器是不可能的,而且我的问题也是独一无二的,因为我正在使用 rabbitMQ 和 Laravel horizo​​n 来向外部微服务发送消息不接受现有问题。

我在 laravel 中使用 RabbitMQ 与我的 NodeJs 应用程序进行通信。

当我从 Laravel 向 Node App 发送消息时,它会序列化有效负载,并且由于我在有效负载中发送原始 html 文本,因此我的节点 js 应用程序无法对其进行反序列化。

我尝试使用 php-unserialize,但它无法反序列化我的作业对象以及 This Code from Stackoverflow,但它也无法处理负载中的 html。这是其实现的 fiddle

这是示例有效负载 https://jsonbin.io/60e6d93d9328b059d7b9e5b0

TestDownstreamJob::dispatch(['html' => 'Some Long HTML Text'])->onQueue('node_downstream');

{
uuid: '46a76d06-d9d5-4775-b9f4-4326dd9112b3',displayName: 'App\\Jobs\\TestDownstreamJob',job: 'Illuminate\\Queue\\CallQueuedHandler@call',maxTries: null,maxExceptions: null,backoff: null,timeout: null,retryUntil: null,data: {
  commandName: 'App\\Jobs\\TestDownstreamJob',command: 'O:26:"App\\Jobs\\TestDownstreamJob":11:{s:8:"campaign";s:8:"testData";s:3:"job";N;s:10:"connection";N;s:5:"queue";s:15:"node_downstream";s:15:"chainConnection";N;s:10:"chainQueue";N;s:19:"chainCatchCallbacks";N;s:5:"delay";N;s:11:"afterCommit";N;s:10:"middleware";a:0:{}s:7:"chained";a:0:{}}'
},id: 'f213fa1b-eabf-4686-be90-0347c9e0631a',type: 'job',tags: [],pushedAt: '1625055793.0774'
}

如何在 data添加未序列化的其他字段,创建新的自己的队列管理器是我不想要的,因为我使用的是 Horizo​​n,而 Redis 用于其他一些队列。

我尝试了一些现有的软件包,例如 siamiondavydau/external-queuekristianedlund/laravel-external-queue,但它们都已过时且不支持最新版本的 Laravel 队列

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。