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,您应该可以更快地看到更改。请记住,对于始终记录大量活动的高流量站点,不建议这样做。原因是这些活动需要登录到数据库中,而您不想一直访问您的数据库。
我们正在为我们的一个网站使用 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,您应该可以更快地看到更改。请记住,对于始终记录大量活动的高流量站点,不建议这样做。原因是这些活动需要登录到数据库中,而您不想一直访问您的数据库。