Kentico Personas更新时间延迟

时间:2016-08-15 02:17:38

标签: c# kentico

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

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

1 个答案:

答案 0 :(得分:2)

在Kentico中更新联系人的推荐方法是使用ContactInfoProvider类,如下所示:

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

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

        // save contact
        contact.Update();
    }

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

要确保重新计算角色/联系人组,您可以使用以下web.config密钥:

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

默认情况下,Kentico会将活动/联系人更新存储在内存中,然后每10秒处理一次,通过将其更改为1,您应该更快地看到更改。请记住,不建议在高流量站点上进行此操作,并且始终记录大量活动。原因是需要将活动记录到数据库中,并且您不希望始终保持对数据库的访问。