Magento 2:批量操作没有开始?

Magento 2: Bulk Actions Not Starting?

我花了几个小时试图解决这个问题,但我没有取得太大进展,所以我想我会 post 在这里。我遇到批量操作未启动的问题,任务已排队,但仅此而已,它未启动。我收到一个 任务 "Update attributes for 20 selected products":当前正在更新 0 个项目。已安排更新 0 个项目。 当我检查日志时,它说是 'In Progress' 但是什么也没有开始。

疑难解答

1.) 我已经检查了 magento_bulk 并删除了行,希望有什么东西卡住了但是当我排队另一个任务时,它被添加到 table 并且没有得到推入 magento_acknowledged_bulk。这份工作是否应该被推到这个实际上 运行?

2.) 我已经检查了 Nginx 日志,但看不到任何指向问题的内容,post_max_size 存在超出限制的问题,但我修复了此问题并重新启动PHP,这对批量操作没有任何影响。

3.) 我仔细检查了权限,可以确认它们符合 Magento 的建议,权限没有任何错误。


有人遇到过这个问题吗?我浏览了一些论坛,但似乎没有人解决这个问题?

非常感谢任何帮助!

经过进一步调查和环顾四周,env.php 文件中的这一更改似乎解决了我的问题。在进行更改之前,我清除了 magento_bulk table 并确保没有排队。

我将默认的 cron_consumers_runner 替换为以下内容:

'cron_consumers_runner' => [
'cron_run' => true,
'max_messages' => 2000,
'consumers' => [
    'product_action_attribute.update',
    'product_action_attribute.website.update',
    'exportProcessor',
    'codegeneratorProcessor'
]]

更改此后,我重新编译并清除缓存,然后排队进行批量更改(我更改了 20 种产品的定价)和这项工作 运行 立即。

我希望这对其他人有帮助!

根据 Magento 2 文档,您应该将消费者留空:

consumers - 指定 运行 的消费者的字符串数组。空数组 运行s 所有消费者。

参考:https://devdocs.magento.com/guides/v2.4/config-guide/mq/manage-message-queues.html

在app/etc/env.php:

'cron_consumers_runner' => [
   'cron_run' => true,
   'max_messages' => 20000,
   'consumers' => [
   ]
],

我在 Magento 2.4.2 中遇到了同样的问题。但在更改 db-schema.xml 后已修复,如 post How to Fix Magneto 2 Bulk Actions Not Starting

中所述

实际上对于我来说,在 2.3.2 上这真的很简单,数据库中有一个 cron 作业被“卡住了”,当我删除它时,事情又开始了。例如在数据库 table cron_schedule 中查找带有 status = 'running'job_code = 'consumers_runner' 并删除该行。希望能帮助别人,我花了很长时间才弄清楚...