---
title: "タスク登録"
slug: "register-a-task"
abstract: ""
---
# タスク登録

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

このトピックの例は、基本的なワーカーオプション辞書( DeferredWorkerOptionsDictionaryとDistributedWorkerOptionsDictionary)を使ってタスクを登録する方法を示しています。この方法で任意のタスクを登録できますが、各ワーカータイプごとに専門的なワーカーオプション辞書を作成するのが標準的な慣行です。デフォルトのワーカーオプション辞書には以下が含まれます:

-   MergeWorkerOptionsDictionary
-   InteractionProjectionWorkerOptionsDictionary
-   ContactProjectionWorkerOptionsDictionary
-   InteractionTrainingWorkerOptionsDictionary
-   ContactTrainingWorkerOptionsDictionary

## 遅延タスクを登録する

TaskManagerクラスでRegisterDeferredTaskAsync()メソッドを使って遅延タスクを登録します。以下の例:

-   DeferredWorkerOptionsDictionaryの基本クラスを使用します:
-   Sitecore.Documentation.SampleDeferredWorkerが存在すると仮定します。
-   ワーカーには「testkey」のキーを「testvalue」のキーで扱うロジックが含まれていると仮定します。

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が存在すると仮定します。
    
-   ワーカーには「testkey」のキーを「testvalue」のキーで扱うロジックが含まれていると仮定します。
    
    > !注分散労働者向けに「DistributedWorkerOptionsDictionary」を引き継ぐ専用のワーカーオプション辞書を作成するのが標準的な慣行です。
    
-   ContactDataSourceOptionsDictionaryクラスを使用し、ワーカーはxConnectからデータ抽出によってデータを取得することを指定しています。デフォルトのデータソースオプションは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);
 }
 }
}

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

特定の作業員のタスク登録方法については、以下のドキュメントを参照してください。

-   訓練労働者
-   映写作業員
-   マージワーカー

> !注モデルトレーニングのような多くのシナリオでは、複数の異なるタイプの作業者が処理する一連のタスクが関与しています。