Shopware 6 中 PaymentMethods 的索引循环

Indexing-Loop of PaymentMethods in Shopware 6

提问人:newgennerd 提问时间:11/17/2023 更新时间:11/17/2023 访问量:32

问:

最近,我在 Shopware 中索引付款方式时遇到了一个奇怪的问题:它导致队列中 PaymentMethodIndexingMessages 的无限循环。每次处理一条消息后,都会创建一个具有相同内容的新消息。

目前在 Shopware 6.5.6.1 上,但我在 6.4.x 中也看到了这一点。 似乎在 PaymentIndexer 调用后,一条新消息被推送到队列中。我怀疑发生这种情况是因为这种方法中的付款方式的更新插入。\Shopware\Core\Checkout\Payment\DataAbstractionLayer\PaymentDistinguishableNameGenerator::generateDistinguishablePaymentNames

有没有人知道可能是什么原因以及如何停止循环?

装 店 装6

评论

0赞 Marcus 11/17/2023
您是否使用外部插件的付款方式?
0赞 newgennerd 11/17/2023
是的,有多个支付插件在使用中
0赞 newgennerd 11/17/2023
我想我找到了一个解决方案,上面描述了什么:developer.shopware.com/docs/guides/plugins/plugins/framework/......如果它有效,会报告回来

答:

1赞 newgennerd 11/17/2023 #1

找到了解决方案:在付款索引期间,当前有一个使用 DAL 的更新插入,它会触发新的 IndexingMessage。 使用文档,我找到了一个解决方案,即在此更新插入调用的上下文中禁用索引。

文档已经过时了,必须禁用索引。它应该使用状态而不是上下文扩展:

$context->addState(EntityIndexerRegistry::DISABLE_INDEXING);

评论

0赞 newgennerd 11/17/2023
对 Shopware 进行了 PR 以修复此行为:github.com/shopware/shopware/pull/3431