我们遇到的问题是EventQueue表有时会非常快速地增长,每秒最多3k条记录,而且从不清除记录(目前为3000万条记录)。我们的环境有如下设置:
Sitecore 7.2
我有几个问题,所以我会把它们分成不同的行项目。
当为所有CD服务器发布发布时,更新内容直接从CM数据库发送到CD数据库(所有正确的表),或者是否发送到CD数据库中的EventQueue表和CD服务器有一个作业/任务,可以查看表格并根据需要进行更新。
根据对第一个问题的回答,如果有2个CD服务器指向同一个DB,他们如何知道他们是否应该处理EventQueue表(他们不会每个处理表并重复工作)
为什么没有清除EventTable表?如何清除,何时清除?
答案 0 :(得分:16)
InstanceName
列存储每个Sitecore实例的唯一名称(默认情况下,这是Machine Name + IIS Instance Name,但可以在web.config中设置)。这使得事件可以在负载平衡环境中由单个CD实例获取。 EventQueue表由web.config中<scheduling>
元素中定义的Sitecore任务清除,尽管我过去曾看到过这种错误行为。默认情况下,它设置如下:
<agent type="Sitecore.Tasks.CleanupEventQueue, Sitecore.Kernel" method="Run" interval="04:00:00">
<DaysToKeep>1</DaysToKeep>
</agent>
我之前遇到过EventQueue和PublishQueue表的高负载,建议尝试以下方法(其中一些是Sitecore支持建议的):
CleanupEventQueue
代理的间隔(上图)CleanupEventQueue
上的DaysToKeep设置(同时CleanupPublishQueue
也不会受到伤害)最后,来自Sitecore支持:
Sitecore建议History,PublishQueue和EventQueue表中的行数(条目数)小于1000.