Kentico Personas 更新时间延迟

Kentico Personas Update time Delay

我们正在为我们的一个网站使用 Kentico 内置角色,我们在更新角色时遇到大约五秒钟的延迟。我们有一些联系人字段,我们使用规则来设置角色。有什么办法可以改善角色的更新时间。我们使用以下代码片段来更新联系人:

int contactId = ModuleCommands.OnlineMarketingGetCurrentContactID();
Dictionary<string, object> contactData = new Dictionary<string, object>();
contactData.Add("key", "Test");
ModuleCommands.OnlineMarketingUpdateContactFromExternalSource(contactData, true, contactId);

在 Kentico 中更新联系人的推荐方法是这样使用 ContactInfoProvider class:

    var contact = ContactInfoProvider.GetContactInfo(OnlineMarketingContext.CurrentContactID);

    if (contact != null)
    {
        // update contact
        contact.ContactFirstName = "Arnold";
        contact.SetValue("CustomField", "Value");

        // save contact
        contact.Update();
    }

此代码直接在数据库中更新联系人,更新联系人时没有延迟。

要确保重新计算 personas/contact 个组,您可以使用以下 web.config 键:

<add key="CMSProcessContactActionsInterval" value="1" />

Kentico 默认情况下将 activities/contact 更新存储在内存中,然后每 10 秒处理一次,通过将其更改为 1,您应该可以更快地看到更改。请记住,对于始终记录大量活动的高流量站点,不建议这样做。原因是这些活动需要登录到数据库中,而您不想一直访问您的数据库。