1. マーケティングオートメーション

マーケティングオートメーションプランの処理

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

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

マーケティング オートメーション エンジンは、優先度に従って作業項目を処理し、優先度の高い項目を最初に処理します。

デフォルトのxConnectプラグインの優先度

デフォルトでは、xConnectプラグインによって追加されるすべてのワーク アイテムは、C:\path\toxconnect\App_data\config\sitecore\MarketingAutomation\sc.XConnect.Service.Plugins.MarketingAutomation.xmlファイルの優先度設定を使用します。例えば:

<Settings>
<!--
    Configuration for the Marketing Automation plugin for XConnect.
-->
<Sitecore>
    <XConnect>
                    <MarketingAutomation>
                            <XConnect>
                                    <Services>
                                            <!-- An XConnect plugin which queues Marketing Automation work in the Automation Pool. -->
                                            <XConnect.Service.Plugins.MarketingAutomation.XdbContactEventWatcher>
                                                    <Type>Sitecore.XConnect.Service.Plugins.MarketingAutomation.XdbContactEventWatcher, Sitecore.XConnect.Service.Plugins.MarketingAutomation</Type>
                                                    <As>Sitecore.XConnect.Service.Plugins.IXConnectServicePlugin, Sitecore.XConnect.Service.Plugins</As>
                                                    <LifeTime>Singleton</LifeTime>
                                                    <Options>
                                                            <!-- The default priority to set on new work items in the Automation Pool.
                                                            Default: 80
                                                            -->
                                                            <DefaultPriority>80</DefaultPriority>
                                                    </Options>
                                            </XConnect.Service.Plugins.MarketingAutomation.XdbContactEventWatcher>
                                    </Services>
                            </XConnect>
                    </MarketingAutomation>
    </XConnect>
</Sitecore>
</Settings>

特定のチャネルからの作業に優先順位を付ける

インタラクションのプロパティに基づいて優先順位を変えるには、マーケティング オートメーション プールに作業項目を追加するデフォルトのxConnectプラグインを置き換える必要があります。独自のプラグインを作成するには:

  1. Sitecore.XConnect.Service.Plugins.MarketingAutomation.XdbContactEventWatcherを継承するクラスを作成します (デフォルトのxConnectサービス プラグイン)。

  2. .GetPriority()メソッドを独自のロジックでオーバーライドします。たとえば、特定のインタラクションチャネルからの作業に優先順位を付けることができます。

  3. C:\path\toxconnect\App_data\config\sitecore\MarketingAutomation\sc.XConnect.Service.Plugins.MarketingAutomation.xmlファイルを開き、次の行を独自のプラグインに置き換えます。

<Type>Sitecore.XConnect.Service.Plugins.MarketingAutomation.XdbContactEventWatcher, Sitecore.XConnect.Service.Plugins.MarketingAutomation</Type>

次の例は、インタラクションがソーシャルチャネルから来る場合に優先度を最大値に設定する派生プラグインを示しています。

public class SocialHighPriorityPlugin : XdbContactEventWatcher
{
    private Guid SocialMentionsChannelId = Guid.Parse("{5C56C3CD-6BAB-4EAB-ACF4-C30464326C05}");

    public SocialHighPriorityPlugin(
        IConfiguration configuration,
        IAutomationPool pool,
        IActivityEnrollmentProvider activityEnrollmentProvider,
        ILogger<SocialHighPriorityPlugin> logger)
        : base(configuration, pool, activityEnrollmentProvider, logger)
    {
    }

    public SocialHighPriorityPlugin(
        IAutomationPool pool,
        IActivityEnrollmentProvider activityEnrollmentProvider,
        ILogger<SocialHighPriorityPlugin> logger,
        byte defaultPriority)
        : base(pool, activityEnrollmentProvider, logger, defaultPriority)
    {
    }

    protected override byte GetPriority(Interaction interaction)
    {
        if (interaction.ChannelId == SocialMentionsChannelId)
            return 255;

        return base.GetPriority(interaction);
    }
}

プールワーカーの構成

マーケティングオートメーションエンジンはプールワーカーを自動的に追加するため、各プールワーカーを個別に定義する必要はありません(ただし、必要に応じて定義することもできます)。作成する高優先度、標準優先度、低優先度のプールワーカーの数を指定でき、これらの各優先度を持つワーカーにいくつかのパラメータを設定できます。

プールワーカーは、App_data\config\sitecore\MarketingAutomation\sc.MarketingAutomation.Workers.xmlファイルで構成します。 PoolWorker.Configuratorノードには、自動的に作成されたプールワーカーの設定があります。

WorkerToCoreRatio設定は、OSによって報告されたCPUコアの数の比率として作成されるワーカーの合計数を指定します。比率が1の場合、コアの数と同じ数のワーカーが作成されます (したがって、OSが8コアと報告した場合、合計8ワーカーが作成されます)。比率が0.5の場合、8コア マシンでは4つのワーカーのみが作成されます。

HighPriorityWorkerRatioNormalPriorityWorkerRatioの設定で作成された高優先度、標準、および低優先度のワーカーの数を制御できます。

HighPriorityWorkerRatio作成されたワーカーの合計のうち、作成された優先度の高いワーカーの比率を指定します。8つのワーカーが作成され、この設定が0.25の場合、ワーカーの25% (この場合は2) が高優先度になります。 NormalPriorityWorkerRatioは、通常の優先度のワーカーの数を同じように指定します。0.5に設定すると、作成されるワーカー全体の半分が通常の優先度のワーカーになります。優先度の低いワーカーの設定は、この数値は他の2つの設定から計算できるため、設定はありません。ただし、優先度の低いワーカーは常に1つ作成されます。

各優先度で作成されたワーカーには、次のようないくつかの設定を指定できます。

設定

形容

計画

作業が利用できないときに作業者がスリープする時間を指定します (秒単位)。

最小優先度

処理する作業項目の最小優先度を指定します

ワークアイテムタイムアウト

作業項目のタイムアウトのhours:minutes:secondsを指定します

WorkItemTimeoutSchedule (英語)

タイムアウトがリセットされる前に時間:分:秒を指定します

個々のプールワーカーを作成し、各ワーカーに同じパラメータを設定することができます。

<ExplicitPoolWorker1>
    <Type>Sitecore.Xdb.MarketingAutomation.Processing.PoolWorker, Sitecore.Xdb.MarketingAutomation</Type>
    <As>Sitecore.Xdb.MarketingAutomation.Core.Processing.IPoolWorker, Sitecore.Xdb.MarketingAutomation.Core</As>
    <LifeTime>Transient</LifeTime>
    <Options>
        <Schedule>00:00:20</Schedule>
        <MinimumPriority>0</MinimumPriority>
        <WorkItemTimeout>00:00:10</WorkItemTimeout>
        <WorkItemTimeoutSchedule>00:00:07</WorkItemTimeoutSchedule>
        <BatchHead>3</BatchHead>
        <BatchSize>5</BatchSize>
    </Options>
</ExplicitPoolWorker1>

作業項目のストール

作業項目の処理は、さまざまな理由で失敗する可能性があります。エンジンは短時間で処理を再試行しますが、作業項目を処理できない状況 (プランが削除された場合など) があります。繰り返し再試行してリソースを浪費しないように、項目は再試行回数後に 停止 (特別なプールに移動) され、再試行されません。

作業項目が \App_data\config\sitecore\MarketingAutomation\sc.MarketingAutomation.PoolFilter.xmlファイルで停止するタイミングを指定します。

MarketingAutomation.AttemptLimitWorkItemRegulatorノードでは、ワークアイテムを停止させる前に試行する再試行回数を設定できます (AttemptLimit設定)。デフォルトは100です。

MarketingAutomation.AgeLimitWorkItemRegulatorノードでは、再試行の時間制限を設定できます。作業項目が最初に作成されてからその時間が経過すると、処理は再試行されません。設定はAgeLimitで、デフォルト値は10.00:00:00 (10日) です。

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