Php Laravel是否有可能在没有“";“工作”;有效载荷中的属性?
我正在尝试使用Laravel使用RabbitMQ队列驱动程序从外部服务消费作业 每个作业负载基本上都是一个序列化对象 然而,在我看来,Laravel要求作业具有一个名为“job”的属性,该属性映射到完全限定类名(FQCN)。但我不能这样做,因为这些工作是在一个甚至不知道我的Laravel应用程序的服务上创建的 我是否可以在没有此属性的情况下使用和执行作业 例如: Laravel是否可以执行包含此有效负载的作业:Php Laravel是否有可能在没有“";“工作”;有效载荷中的属性?,php,laravel,Php,Laravel,我正在尝试使用Laravel使用RabbitMQ队列驱动程序从外部服务消费作业 每个作业负载基本上都是一个序列化对象 然而,在我看来,Laravel要求作业具有一个名为“job”的属性,该属性映射到完全限定类名(FQCN)。但我不能这样做,因为这些工作是在一个甚至不知道我的Laravel应用程序的服务上创建的 我是否可以在没有此属性的情况下使用和执行作业 例如: Laravel是否可以执行包含此有效负载的作业: { "fooBar": "abc-123", "baz": fals
{
"fooBar": "abc-123",
"baz": false,
"bazBar": 1
}
与此相反:
{
"job": "Acme\\\\Jobs\\\\FooJob",
"data": {
"fooBar": "abc-123",
"baz": false,
"bazBar": 1
}
}
不,不重写Laravel的作业调度程序中的某些方法。Laravel的队列系统仅设计为与Laravel一起使用,因此队列中的有效负载结构是它所期望的格式。如果您想使用另一个框架使用排队作业,您有许多选项 1) 忽略作业负载中的FQCN。然而,你会把自己绑在Laravel的工作负载结构上,如果这种情况发生变化,它可能会破坏你的应用程序 2) 重写Laravel的作业调度器,以更改传递到队列的数据结构。这似乎比它的价值更麻烦
3) 编写自己的作业调度器,并使用自己的类与队列系统交互。这使您可以完全控制如何使用队列。谢谢。你知道有没有像你在#3中所说的那样实现更通用的作业调度器的库?