Sitecore EventQueue表越来越失控

时间:2014-06-12 19:38:41

标签: 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表?如何清除,何时清除?

1 个答案:

答案 0 :(得分:16)

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

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

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

    最后,来自Sitecore支持:

      

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