首页 > 解决方案 > 我的系统被消息队列处理中的错误所淹没

问题描述

我的系统目前正被后台处理错误所淹没。prod.log 文件每天大小为 300 MB,由于队列中的错误,CPU 每秒持续 100%,并且不断重试。

  1. 如何解决错误?(查找进程或消息)
  2. 如何快速停止进程重试?

有问题的错误正在生成以下日志:

    [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 秒后立即重新开始并再次重复整个过程。

我束手无策,因为我在日志中看不到太多东西。谢谢你的帮助!

标签: orocommerce

解决方案


  1. 如何解决错误?(查找进程或消息)

您需要的所有信息都在错误日志中。

  • 使用的处理器是Oro\\Bundle\\VisibilityBundle\\Async\\Visibility\\CustomerProcessor
  • 消息 ID 是5e6965d4ebbfa8
  1. 如何快速停止进程重试?

如果您使用的是 OroCommerce 的社区版,您可以oro_message_queue通过 id 在表格中找到消息并手动将其删除。

发生该错误的原因可能是数据库中的记录已损坏或代码中存在错误。不调试很难说。


推荐阅读