Zend Framework 3 的队列管理器建议

Queue manager recommendations for Zend Framework 3

我们目前正在将我们的系统从 ZF2 迁移到 ZF3。在 ZF2 中,为了在后台排队 long/resource 个贪心作业,我们使用 SlmQueue 和 SlmQueueBeanstalkd Adapter。然而,事实证明SlmQueueBeanstalkd不再维护,这导致我们因为依赖冲突而无法升级。

你能为我提供需要对代码进行合理更改的好的替代方案吗?

我正在考虑 SlmQueueDoctrine,因为它似乎得到了维护,并且在某种程度上与我们当前的堆栈相当。

我们最终使用了 SlmQueueDoctrine,它只需要很少的代码更改:

简而言之: 我们的作业需要实现 ObjectManagerAwareInterface,它具有队列管理器内部使用的对象管理器的 setter 和 getter。我们需要通过构造函数在我们的每个作业中注入对象管理器。

/** @var ObjectManager $entityManager */
$entityManager = $container->get('doctrine.entitymanager.orm_default');

return new Job($entityManager);

为了使上述工作正常,我们在 application.config

中启用了 DoctrineModule、DoctrineORMModule 和 SlmQueueDoctrine

之后,我们在 config.local 和 config.global 中配置我们的队列。我不会把配置放在这里,因为它们有点大。我推荐阅读 SlmqueueDoctrine 的 README.md 和 Slmqueue 的文档。