タスクの登録

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

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

タスク マネージャー (TaskManager) を使用して、分散タスク、遅延タスク、またはクライアントからのタスクのチェーン (Content Managementロールなど) を登録します。タスクはメッセージ バスに追加され、最終的にはCortex Processing Engineのワーカーによって実行されます。

このトピックの例では、基本ワーカーオプションディクショナリ ( DeferredWorkerOptionsDictionaryDistributedWorkerOptionsDictionary) を使用してタスクを登録する方法を示します。この方法で任意のタスクを登録できますが、ワーカータイプごとに専用のワーカーオプションディクショナリを作成するのが標準的な方法です。デフォルトのワーカーオプションディクショナリには、次のものがあります。

  • MergeWorkerOptionsDictionary

  • InteractionProjectionWorkerOptionsDictionary

  • ContactProjectionWorkerOptionsDictionary

  • InteractionTrainingWorkerOptionsDictionary

  • ContactTrainingWorkerOptionsDictionary

遅延タスクの登録

TaskManagerクラスのRegisterDeferredTaskAsync() メソッドを使用して、遅延タスクを登録します。次に例を示します。

  • DeferredWorkerOptionsDictionary基本クラスを使用します。

  • Sitecore.Documentation.SampleDeferredWorkerが存在すると仮定します。

  • ワーカーには、値が "testvalue" の "testkey" キーを処理するロジックが含まれていると仮定します。

using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using Sitecore.Processing.Engine;
using Sitecore.Processing.Engine.Abstractions;
namespace Sitecore.Docs.Examples
{
    public class DocTaskManager
    {
        public async Task RegisterTask()
        {
            TaskManager taskManager = ServiceLocator.ServiceProvider.GetService<ITaskManager>();

            Guid deferredTaskId = await taskManager.RegisterDeferredTaskAsync(
                new DeferredWorkerOptionsDictionary("Sitecore.Documentation.SampleDeferredWorker",
                new Dictionary<string, string>() { { "testkey", "testvalue" } }),
                null,
                TimeSpan.FromDays(1));
        }
    }
}

分散タスクの登録

TaskManagerクラスのRegisterDistributedTaskAsync() メソッドを使用して、分散タスクを登録します。次に例を示します。

  • DistributedWorkerOptionsDictionary基本クラスを使用します。

  • Sitecore.Documentation.SampleDistributedWorkerが存在すると仮定します。

  • ワーカーには、値が "testvalue" の "testkey" キーを処理するロジックが含まれていると仮定します。

    メモ

    'DistributedWorkerOptionsDictionary' を継承する分散ワーカー専用のワーカー オプション ディクショナリを作成するのが標準的な方法です。

  • ワーカーがxConnectからのデータ抽出によってデータを取得するように指定するContactDataSourceOptionsDictionaryクラスを使用します。デフォルトのデータソースオプションは4つあります。

  • キー「TestFacetKey」を持つコンタクトファセットが存在すると仮定します。

using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using Sitecore.Processing.Engine;
using Sitecore.Processing.Engine.Abstractions;
using Sitecore.Processing.Tasks.Options.DataSources.DataExtraction;
using Sitecore.XConnect;

namespace Sitecore.Docs.Examples
{
    public class DocTaskManager
    {
        public async Task RegisterDistributedTask()
        {
            TaskManager taskManager = ServiceLocator.ServiceProvider.GetService<ITaskManager>();

            // First task
            Guid distributedTaskId = await taskManager.RegisterDistributedTaskAsync(
                new ContactDataSourceOptionsDictionary(new ContactExpandOptions(new string[] { "TestFacetKey" }), 300, 300),
                new DistributedWorkerOptionsDictionary("Sitecore.Documentation.SampleDistributedWorker", new Dictionary<string, string> { { "testkey", "testvalue" } }),
                null,
                TimeSpan.MaxValue);
        }
    }
}

デフォルトワーカーのタスクの登録

特定のワーカーのタスクを登録する方法については、次のドキュメントを参照してください。

  • 労働者のトレーニング

  • プロジェクションワーカー

  • マージワーカー

手記

モデル トレーニングなどの多くのシナリオには、いくつかの異なる種類のワーカーによって処理されるタスクのチェーンが含まれています。

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