Sitecore EventQueue表越来越失控

mlu*_*ker 13 sitecore sitecore7 sitecore7.2

我们遇到的问题是EventQueue表有时会非常快速地增长,每秒最多3k条记录,并且永远不会清除记录(截至目前为3000万条记录).我们的环境有如下设置:

Sitecore 7.2

  • 4台CD服务器和1台CM服务器
  • 所有四个CD服务器都是负载平衡的.
  • CD1和CD2指向DB1服务器CD3,CD4指向DB2
  • 服务器有2个发布目标(每个数据库一个)合并
  • 在所有服务器(CM,CD)上为Core db设置复制
  • EventQueue已启用

我有几个问题,所以我将它们分解为单独的行项目.

  1. 当为所有CD服务器发布发布时,更新内容直接从CM数据库发送到CD数据库(所有正确的表),或者是否发送到CD数据库中的EventQueue表,并且CD服务器有一个作业/查看表并根据需要更新的任务.

  2. 根据第一个问题的答案,如果有2个CD服务器指向同一个DB,他们如何知道他们是否应该处理EventQueue表(他们不会每个处理表并重复工作)

  3. 为什么没有清除EventTable表?如何清除,何时清除?

小智 16

  1. 在CM发布时,发布请求将发送到CD数据库上的EventQueue表,并根据实例的发布计划进行处理.
  2. InstanceNameEventQueue表中的列存储每个Sitecore实例的唯一名称(默认情况下,这是计算机名称+ IIS实例名称,但可以在web.config中设置).这使得事件可以在负载平衡环境中由单个CD实例拾取.
  3. EventQueue表由<scheduling>web.config中元素中定义的Sitecore任务清除,尽管我在过去看到过这种错误行为.默认情况下,它设置如下:

    <agent type="Sitecore.Tasks.CleanupEventQueue, Sitecore.Kernel" method="Run" interval="04:00:00"> <DaysToKeep>1</DaysToKeep> </agent>

我以前遇到过EventQueue和PublishQueue表的高负载,并建议尝试以下(其中一些是从Sitecore支持建议的):

最后,从Sitecore支持:

Sitecore建议History,PublishQueue和EventQueue表中的行数(条目)小于1000.

  • 谢谢你的回答.我对EventQueue表的抱怨是,如果您有按计划运行的脚本来创建/更新内容,它可以填满*LOT*.清理代理具有"daystokeep"设置,其中最精细的粒度为一天.一天内可能会添加约10万条记录.您应该能够将"TimeToKeep"设置指定为分钟. (3认同)