エージェントの作成
このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。
BaseAgentまたはRecurringAgentを継承するエージェントを作成でき、エージェントをスケーリングするかどうかを選択できます。カスタムエージェントを作成する理由には、次のようなものがあります。
-
エンジンが依存しているデータベースから期限切れのデータをパージするなど、エンジン内で定期的にスケジュールされたメンテナンスを実行します。デフォルトでは、処理エンジンには、メンテナンスタスクを実行する2つのエージェントが含まれています。
カスタムエージェントを作成する必要が生じることはめったにありません。多くの場合、デフォルトのTaskAgentによって実行されるカスタム処理ワーカーを作成します。
RecurringAgentを継承するエージェントを作成する
次のサンプル エージェントは、偽のストレージ プロバイダーのデータをクリーンアップするメソッドを呼び出します。ストレージ プロバイダーは、ICustomProviderインターフェイスによって表されます。エージェントはRecurringAgentを継承します。つまり、エージェントは設定可能な間隔で定期的に実行されます。
エージェント クラスを作成する
エージェントクラスを作成するには:
-
クラスを作成し、次のサンプル エージェントをコピーします。
サンプルのICustomProviderクラスとCustomProviderクラスは、便宜上、同じファイルに含まれています。
エージェントとサービスを構成に登録する
-
scという名前のファイルを作成します。<engine-root>\\App_Data\\Config\\GlobalでProcessing.Engine.CustomAgents.xml。
-
図のようにSampleCleanupAgentとICustomProviderを登録します。この例では、単純な構成を使用して1つのエージェントを登録します。
または、エージェントをスケーリングする必要がある場合は、ParallelAgentsConfigurationを使用して登録します。
BaseAgentを継承するエージェントを作成する
次のサンプル エージェントは、起動時にログにメッセージを書き込み、1ミリ秒待機します。エージェントはRecurringAgentを継承せず、一定の間隔で実行されません。
この特定のエージェントは、エンジンの起動時に1回実行されます。ただし、エージェントは特定のイベントが発生するまでスリープし、イベントが再び発生するまで再びスリープする場合があります。エージェントは技術的には「繰り返し」ますが、定期的にスケジュールされた間隔ではありません。
エージェント クラスを作成する
エージェントクラスを作成するには:
-
クラスを作成し、次のサンプル エージェントをコピーします。
エージェントを構成に登録する
-
scという名前のファイルを作成します。<engine-root>\\App_Data\\Config\\GlobalでProcessing.Engine.CustomAgents.xml。
-
図のようにSampleCleanupAgentを登録します。この例では、単純な構成を使用して1つのエージェントを登録します。
タスクのキャンセル
すべて 長時間実行される可能性のあるエージェントを実装する場合は、ExecuteAsyncメソッド (BaseAgentを継承するエージェントの場合) またはRecurringExecuteAsyncメソッド (RecurringAgentを継承するエージェント) でtoken.IsCancellationRequestedプロパティを確認してください。