1. xConnectクライアントAPI (C#)

xConnect操作のバッチ処理

Version:
日本語翻訳に関する免責事項

このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。

xConnectに操作は、個別に送信することも、バッチで送信することもできます。バッチ処理により、クライアントが行う必要があるHTTP接続の数が減り、クライアントはxConnectサービスへの呼び出しを最適化できます。

  • バッチのサイズは、client.SubmitAsync() / client.Submit() が呼び出されるポイントによって決まります。xConnect Client APIはデフォルトを強制しません

  • xConnectはトランザクションではありません - バッチ内の操作は失敗するか、独立して成功し、1つの操作が失敗した場合、バッチはロールバックされません

  • 操作が別の操作の成功に依存している場合 (ファセットを設定する前に連絡先を正常に追加するなど)、操作のチェーン全体が失敗します

  • 操作が記述される順序は関係ありません。client.AddContact()の前にclient.SetFacet()に電話をかけることができます。

次の例では、200のAddContactOperation操作と200のSetFacetOperation操作が1つのバッチでxConnectに送信されます。

using Sitecore.XConnect;
using Sitecore.XConnect.Client;
using Sitecore.XConnect.Collection.Model;

namespace Documentation
{
    public class AddContactsInBatch
    {
        // Async Example
        public async void ExampleAsync()
        {
            using (Sitecore.XConnect.Client.XConnectClient client = Sitecore.XConnect.Client.Configuration.SitecoreXConnectClientConfiguration.GetClient())
            {
                try
                {
                    for (int i = 1; i <= 200; i++)
                    {
                        // Adds an AddContactOperation operation to the batch
                        var contact = new Sitecore.XConnect.Contact();

                        client.SetFacet<PersonalInformation>(contact, new PersonalInformation() { FirstName = "Sample Contact" });
                        client.AddContact(contact); // Extension found in Sitecore.XConnect
                    }

                    // Submits the batch, which contains 400 operations
                    // 200 AddContactOperation
                    // 200 SetFacetOperation
                    await client.SubmitAsync();

                }
                catch (Sitecore.XConnect.XdbExecutionException ex)
                {
                    // Manage exception
                }
            }
        }

        // Sync example
        public void ExampleSync()
        {
            using (Sitecore.XConnect.Client.XConnectClient client = Sitecore.XConnect.Client.Configuration.SitecoreXConnectClientConfiguration.GetClient())
            {
                try
                {
                    for (int i = 1; i <= 200; i++)
                    {
                        // Adds an AddContactOperation operation to the batch
                        var contact = new Sitecore.XConnect.Contact();

                        client.SetFacet<PersonalInformation>(contact, new PersonalInformation() { FirstName = "Sample Contact" });
                        client.AddContact(contact); // Extension found in Sitecore.XConnect
                    }

                    // Submits the batch, which contains 400 operations
                    // 200 AddContactOperation
                    // 200 SetFacetOperation
                    client.Submit();

                }
                catch (Sitecore.XConnect.XdbExecutionException ex)
                {
                    // Manage exception
                }
            }
        }
    }
}
メモ

バッチ処理に依存するアプリケーションを構築する場合は、管理者が既定のバッチ サイズを構成および調整する方法を提供することをお勧めします。

この記事を改善するための提案がある場合は、 お知らせください!