タスクマネージャー
このページの翻訳は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
TaskManager = taskManager; } }