1. 開発者向けのドキュメント

スケジュールされたタスク

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

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

SitecoreAIの組み込みスケジューラにより、設定ファイルを編集せずに定期的なバックグラウンド操作を実行できます。タスクはコンテンツツリー(データベース)内の項目として定義されるため、管理、バージョン変更、デプロイが容易です。

スケジュールされたタスク実行には2種類のSitecoreアイテムタイプが関与しています:

  • Commandアイテム

  • Scheduleアイテム

コマンドアイテム

Command項目が実行すべきコードwhat定義します。この学校は/sitecore/system/Tasks/Commandsに位置しています。

Command項目は実行可能コードを指し、以下のフィールドを含みます。

  • Type - アセンブリー認定クラス名。

  • Method - Sitecoreが呼び出すべきメソッド。

A Command item with Type and Method fields.

スケジュール項目

Schedule項目がwhenを定義し、コマンドを実行するhow oftenします。/sitecore/system/Tasks/Schedulesに位置しています。

Schedule項目には以下の項目が含まれます:

  • Command - 関連するCommand項目への言及。

  • Items - コマンドに入力されたアイテムを取得するためのクエリ。

  • Schedule - 実行タイミングを定義する パイプ分離された文字列

  • Async - 有効化されている場合、タスクをバックグラウンドスレッドでSitecoreジョブとして実行します。

  • Auto remove - 満期後にスケジュールを自動的に削除します。

  • Last run - 直近の実行のタイムスタンプ。

A Scheduled item with Command, Schedule, Items, Async, Auto remove, and Last run fields.

スケジュールフィールド形式

Sitecore ScheduleアイテムのScheduleフィールドは、パイプ分離(|)4部構成の構文を使用しています。

<StartDateTime>|<EndDateTime>|<DaysOfWeek>|<Interval>

例:

20231125|99990101|127|12.00:00

フィールド内訳

以下の表はSchedule項目構文の各フィールドを説明します。

フィールド名

概要

フォーマット

StartDateTime

スケジュールがいつ有効になるかを定義します。

はああ、ちっと

20260220T000000

意味:

2026年2月20日00:00:00

EndDateTime

スケジュールの期限を定めています。

はああ、ちっと

99990101

意味:

この値はスケジュールが失効しないことを示すために一般的に使われます。

DaysOfWeek

タスクを実行する曜日を指定する数値bitmask

  • 各日には割り当てられたビット値があります:

    • 日曜日 = 1

    • 月曜日 = 2

    • 火曜日 = 4

    • 水曜日 = 8

    • 木曜日 = 16

    • 金曜日 = 32

    • 土曜日 = 64

  • 複数の日を組み合わせるには、それらのビット値を合計します。

127 = 1 + 2 + 4 + 8 + 16 + 32 + 64

意味:

この課題は週の毎日実施されます。

Interval

タスクがどれくらいの頻度で実行されるかを定義します。

注記

Sitecoreクロック時間の実行ではなくinterval-based pollingを用います。

d.HH:MM:SS

1.02:05:10

意味:

この課題は1日2時間5分10秒ごとに行われます。

Sitecoreがタスクの実行タイミングを判定する方法

Sitecoreはcronスタイル(絶対時間型)スケジューラを使用していません。代わりに、interval-based executionを使用します。

スケジューリングの手順は以下の通りです。

  • システムは定期的に(デフォルトは10分ごと)データベースをポーリングします。

  • スケジュールが提出される場合は、対応するコマンドが実行されます。

  • タスクは正確な1分で起動できません。

Last runフィールドに値がある場合、次の実行はそのタイムスタンプと設定されたIntervalから計算されます。

重要

繰り返し行うタスクを修正または再スケジュールする際:

  • システムは自動的にこのLast runフィールドをリセットdoes not

  • 現在のLast run値と新たにスケジュールされたStartDateTimeの間の時間がIntervalより短い場合は、再スケジュール後の最初の実行はスキップされます。

新たに設定された開始時刻での実行を確保するために:

Last run畑をクリアしなければならない。

スケジュールされたタスクを作成する

次の手順を使ってスケジュールされたタスクを作成します。

  1. タスクコードを書く

    自動化したいロジックを含むクラスを作成します。

    簡単な例:

    public class MySimpleTask
    {
        public void Execute()
        {
            // Custom logic goes here
        }
    }

    パラメータ付きの例:

    public class MyComplexTask
    {
        public void Execute(Item[] items, CommandItem command, ScheduleItem schedule)
        {
            // Custom logic
        }
    }
  2. コマンドアイテムを作成する

    新しいCommandアイテムを作成する:

    • Path - /sitecore/system/Tasks/Commands/

    • Template - /sitecore/templates/System/Tasks/Command - {58119A3E-560E-4DA6-97C6-1ACE8A5B1219}

    フィールドの設定:

    • Type - Namespace.ClassName, Assembly

    • Method - Execute

  3. スケジュール項目を作成する

    以下の詳細で新しいScheduleアイテムを作成しましょう:

    • Path - /sitecore/system/Tasks/Schedules/

    • Template - /sitecore/templates/System/Tasks/Schedule - {70244923-FA84-477C-8CBD-62F39642C42B}

    フィールドの設定:

    • Command - 新しいCommandアイテムへのリンク。

    • Schedule - タイミングを定義する文字列。

    • Items - オプションクエリ

    • Async - バックグラウンド実行が取得された場合に有効化します。

タスク実行の検証

スケジュールされたタスクが実行されたかどうかは以下の方法で確認できます:

  • Last runフィールドのチェック

    最新のタイムスタンプが更新されているか必ず確認してください。

  • ログのレビュー

    タスク実行のエントリー SitecoreAIログを確認しましょう。以下のようなエントリーを探してください:

    ManagedPoolThread
    #3 27 Jun 2025 06:58:38 INFO Examining schedules (count:2)
    ManagedPoolThread #3 27 Jun 2025 06:58:38 INFO Starting: Task Schedule
    ManagedPoolThread #3 27 Jun 2025 06:58:38 INFO Ended: Task Schedule
    ManagedPoolThread #3 27 Jun 2025 06:58:38 INFO Starting:
    TaskScheduleForPublishingComponentBuilderDemoPage
この記事を改善するための提案がある場合は、 お知らせください!