2016-08-15 13 views
2

私たちのWebサイトの1つにKenticoの組み込みのPersonasが使用されていて、Personasを更新すると約5秒間の遅延が発生しています。連絡先フィールドがいくつかあり、ルールを使用してペルソナを設定しています。ペルソナの更新時間を改善する方法はありますか?このコードは、データベースに直接接触を更新Kentico Personas更新時間の遅れ

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

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

     // save contact 
     contact.Update(); 
    } 

と:Kenticoの連絡先を更新するための推奨方法は、次のようにContactInfoProviderクラスを使用することです

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

答えて

2

:私たちは、連絡先を更新するには、次のコードスニペットを使用します連絡先の更新に遅延はありません。その後、メモリ内のデフォルトの保存活動/連絡先のアップデートで

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

Kenticoし、それらを10秒ごとに処理し、:あなたは、次のweb.configキーを使用することができますペルソナ/連絡先グループの再計算を確保するため

1に変更すると、変更がはるかに速くなるはずです。常に多くのアクティビティがログに記録されているトラフィックの多いサイトでは、これはお勧めできません。その理由は、アクティビティがDBに記録されている必要があり、常時DBにアクセスしたくないからです。

+0

ありがとうございました。今は少し速いです。更新プログラムにすぐに連絡して、ペルソナを更新するのに数秒かかります。私が質問で言及するように、私たちはペルソナを更新するためにルールを使用します。私は主な問題はルールからペルソナを更新するまでにかかると思う。ルールからペルソナ更新時間を改善する方法はありますか? – Mahesh

+1

ねえ、新しいコメントを見てください。処理を高速化する方法は、 "" web.configキーを使用することです。それが役に立てば幸い! – Enn

+0

この解決策の提案に感謝します。 – Mahesh