タスクの連鎖

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

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

一連のタスクの実行順序は、各タスクを登録するときに前提条件のタスクIDのリストを渡すことで決定できます。次の例では、タスク #2とタスク #3が前提条件のタスクIDの配列に登録されています。

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 Sample()
        {
            TaskManager taskManager = null;

            // Task #1
            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);

            // Task #2
            Guid deferredTaskId = await taskManager.RegisterDeferredTaskAsync(
                new DeferredWorkerOptionsDictionary("Sitecore.Documentation.SampleDeferredWorker",
                new Dictionary<string, string>() { { "testkey", "testvalue" } }),
                new Guid[] { distributedTaskId }, // Will not run before task #1 is complete
                TimeSpan.MaxValue);

            // Task #3
            Guid deferredTaskId = await taskManager.RegisterDeferredTaskAsync(
                new DeferredWorkerOptionsDictionary("Sitecore.Documentation.SecondSampleDeferredWorker",
                new Dictionary<string, string>() { { "testkey", "testvalue" } }),
                new Guid[] { deferredTaskId }, // Will not run before task #2 is complete
                TimeSpan.MaxValue);
        }
    }
}

プロジェクションとマージのチェーン化

データ プロジェクション タスクを登録するときは、データ プロジェクションの完了時に実行される従属マージ タスクを登録する必要があります。

データ プロジェクションは、分散ワーカー (ProjectionWorker) によって実行されます。各ワーカーは、Cortex Processing Engine Storageデータベース内の独自の一時テーブルにデータを投影するため、10個のワーカーが10個の個別のテーブルを生成することになります。マージワーカ (MergeWorker) は、データを1つのテーブルに結合し、一時テーブルを削除します。

先端

Sitecore.Processing.Engine.Abstractions.TaskManagerExtensions拡張クラスのRegisterModelTrainingTaskChainAsync() メソッドは、データ プロジェクションとマージを含む3つのタスクのチェーンを作成します。

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