我们正在为我们的一个网站使用Kentico内置人物角色,当我们更新人物角色时,我们遇到了大约5秒的延迟。我们有一些联系人字段,并且我们使用规则来设置角色。有什么方法可以缩短角色的更新时间吗?我们使用以下代码片段来更新联系人:
int contactId = ModuleCommands.OnlineMarketingGetCurrentContactID();
Dictionary<string, object> contactData = new Dictionary<string, object>();
contactData.Add("key", "Test");
ModuleCommands.OnlineMarketingUpdateContactFromExternalSource(contactData, true, contactId);
发布于 2016-08-15 14:10:46
在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,您应该可以更快地看到更改。请记住,对于经常记录大量活动的高流量网站,不建议这样做。原因是这些活动需要登录到数据库中,而您不想一直访问数据库。
https://stackoverflow.com/questions/38948470
复制相似问题