タスクマネージャー

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

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

タスクマネージャーは、Cortex処理エンジン(Processing Engine)でエージェントが取得するタスクを登録する責任を負います。デフォルトでは、ITaskManagerには2つの実装があります:

  • Sitecore.Processing.Tasks.Messaging.TaskManager Content Management Roleのようなクライアントが、メッセージバスを通じて処理タスクを登録するために使用します。この実装はタスクマネージャープロキシとも呼ばれます。
  • Sitecore.Processing.Engine.TaskManager 処理エンジン内で、入力される処理タスクを処理エンジンタスクデータベースに登録するために使用されます。

!注タスクのスケジュールには必ずタスクマネージャーのプロキシを使うべきです。メッセージングAPIを直接使わないでください。

以下の例は、Content Managementロールから単一の分散タスクを登録するためのデータフローを示しています。

  • サービスロケーターを使ってITaskManagerのインスタンスを取得してください:

    var taskManager = ServiceLocator.ServiceProvider.GetService();

コアロールの文脈でのTaskManagerの使用

Content Managementのようなコア役割の文脈では、サービスロケーターを使ってタスクマネージャーを取得します:

var taskManager = ServiceLocator.ServiceProvider.GetService();

処理エンジンの文脈におけるタスクマネージャーの使用

処理エンジンの文脈では、コンストラクタ注入を使ってタスクマネージャーのインスタンスを取得します。以下の例は、カスタムメッセージハンドラにITaskManagerが注入されるインスタンスを示しています。

using System; using System.Threading.Tasks; using Microsoft.Extensions.Logging; using Sitecore.Framework.Conditions; using Sitecore.Framework.Messaging; using Sitecore.Processing.Engine.Abstractions; using Sitecore.Processing.Engine.Abstractions.Messages;

namespace Sitecore.Documentation.Sample { public abstract class CustomTaskHandler : IMessageHandler where TRegisterTask : RegisterTask { protected CustomTaskHandler(ITaskManager taskManager) { Condition.Requires(taskManager, nameof(taskManager)).IsNotNull();

TaskManager = taskManager; } }

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