orocommerce - 我的系统被消息队列处理中的错误所淹没
问题描述
我的系统目前正被后台处理错误所淹没。prod.log 文件每天大小为 300 MB,由于队列中的错误,CPU 每秒持续 100%,并且不断重试。
- 如何解决错误?(查找进程或消息)
- 如何快速停止进程重试?
有问题的错误正在生成以下日志:
[2020-05-14 07:02:07] consumer.ERROR: Consuming interrupted, reason: An error occurred while running job, id: 1128304 [] []
[2020-05-14 07:02:33] app.ERROR: Transaction aborted wit error: Error in one or more bulk request actions: update: /oro/oro_product_1/2 caused [oro_product_1][2]: document missing [index: oro] update: /oro/oro_product_1/5 caused [oro_product_1][5]: document missing [index: oro] update: /oro/oro_product_1/7 caused [oro_product_1][7]: document missing [index: oro] update: /oro/oro_product_1/11 caused [oro_product_1][11]: document missing [index: oro] update: /oro/oro_product_1/12 caused [oro_product_1][12]: document missing [index: oro] update: /oro/oro_product_1/14 caused [oro_product_1][14]: document missing [index: oro] update: /oro/oro_product_1/26 caused [oro_product_1][26]: document missing [index: oro] update: /oro/oro_product_1/29 caused [oro_product_1][29]: document missing [index: oro] update: /oro/oro_product_1/33 caused [oro_product_1][33]: document missing [index: oro] update: /oro/oro_product_1/36 caused [oro_product_1][36]: document missing [index: oro] update: /oro/oro_product_1/43 caused [oro_product_1][43]: document missing [index: oro] update: /oro/oro_product_1/48 caused [oro_product_1][48]: document missing [index: oro] update: /oro/oro_product_1/51 caused [oro_product_1][51]: document missing [index: oro] update: /oro/oro_product_1/57 caused [oro_product_1][57]: document missing [index: oro] update: /oro/oro_product_1/60 caused [oro_product_1][60]: document missing [index: oro] update: /oro/oro_product_1/4477 caused [oro_product_1][4477]: document missing [index: oro] . [] {"processor":"Oro\\Bundle\\VisibilityBundle\\Async\\Visibility\\CustomerProcessor","message_id":"oro.5e6965d4ebbfa8.58577096","message_body":"{\"id\":105,\"entity_class_name\":\"Oro\\\\Bundle\\\\CustomerBundle\\\\Entity\\\\Customer\"}","message_properties":{"oro.message_queue.client.topic_name":"oro_visibility.visibility.change_customer","oro.message_queue.client.processor_name":"oro_visibility.async.visibility.customer_processor","oro.message_queue.client.queue_name":"oro.default","oro.security.token":"organizationId=1;userId=54;userClass=Oro\\Bundle\\UserBundle\\Entity\\User;roles=ROLE_USER,ROLE_ADMINISTRATOR,ROLE_MANAGER,ROLE_ONLINE_SALES_REP,ROLE_MARKETING_MANAGER,ROLE_LEADS_DEVELOPMENT_REP,ROLE_CATALOG_MANAGER,ROLE_ACCOUNT_MANAGER,ROLE_SALES_ASSISTANT","oro-redeliver-count":392783},"message_headers":{"content_type":null,"message_id":"oro.5e6965d4ebbfa8.58577096","timestamp":0},"message_priority":0,"elapsed_time":"182 ms","memory_usage":"128.18 MB"}
此错误在大约 8 秒的跨度内按顺序连续重复(没有任何其他错误)约 50 次。然后在 10 秒后立即重新开始并再次重复整个过程。
我束手无策,因为我在日志中看不到太多东西。谢谢你的帮助!
解决方案
- 如何解决错误?(查找进程或消息)
您需要的所有信息都在错误日志中。
- 使用的处理器是
Oro\\Bundle\\VisibilityBundle\\Async\\Visibility\\CustomerProcessor
- 消息 ID 是
5e6965d4ebbfa8
- 如何快速停止进程重试?
如果您使用的是 OroCommerce 的社区版,您可以oro_message_queue
通过 id 在表格中找到消息并手动将其删除。
发生该错误的原因可能是数据库中的记录已损坏或代码中存在错误。不调试很难说。
推荐阅读
- hibernate - 无法设置从 Servlet 检索的 JSP 页面中的值
- python - 合并两个不同的日期时间列以形成一个序列
- c++ - 如何应用使默认构造函数有条件地显式?
- css - 元素 UI el-collapse 在前面如果其他组件
- javascript - Android Pie (9.0) 中的 Ionic 4 应用程序登录问题
- scala - 如何在没有 ExecutionContext.global 和 IOApp 的情况下在猫效果中使用计时器?
- scala - 我可以使用类的类型注释来决定类方法的结果类型吗?
- c++ - 使用 fstream 读取文件后,我无法立即写入文件
- python - Django-ajax-selects 与 AJAX_SELECT_BOOTSTRAP = False
- gis - 使用以公里为单位的点数据查找点坐标