Sitecoreのコンテンツツリーには /sitecore/システム/Tasks というアイテムがあります。その配下の Commands というアイテム配下にコマンドを定義できます。 一方 Schedules アイテムに Commands 配下に定義したアイテムをスケジュール実行するスケジュールアイテムを作成できます。なんでアイテムとしてタスクを定義できるのに、 Web.config の scheduling タグでタスクの設定を記述する必要があるんだろうと思っていたのですが、 その答えが コンテンツクックブックの Chpater 4.4 How to Schedule Item Publication あたりに記載されていたので、 /sitecore/システム/Tasks に関する覚書を記載します。

サイトコアは /sitecore/システム/Tasks/Commands にコマンドの定義、/sitecore/システム/Tasks/Schedules のCommands に定義したアイテムを実行するスケジューリングのアイテムを定義をすることができます。

以前から、ここでスケジューリングしたコマンドはだれが実行するんだろうと思っていました。

実際は Web.config の scheduling タグで定義される 下記のような Sitecore.Tasks.DatabaseAgent がスケジュールの定義アイテムを参照してタスク(コマンド)を実行してくれるようです。

<agent type="Sitecore.Tasks.TaskDatabaseAgent" method="Run" interval="00:10:00"/>

なので通常Web.configのみで定義するタスクと同じように、<scheduling>タグの <frequency>タグの値にも注意する必要があります。既定では、次のように DatabaseAgent のタスクが定義されています。
      <agent type="Sitecore.Tasks.DatabaseAgent" method="Run" interval="00:10:00">
        <param desc="database">master</param>
        <param desc="schedule root">/sitecore/system/tasks/schedules</param>
        <LogActivity>true</LogActivity>
      </agent>
サイトコアが用意しているタスクのスケジュール実行の仕組みでは厳密な時間のタスク起動というのは向いていません。ジョブ管理ツールやWindowsのタスクスケジューラーを使って独自に用意したWebサービスを起動するようにしたり、タスクを実装するクラス自身で厳密な時間に処理を実行する仕組みを準備する等の作りこみが必要になります。
 

Sitecoreインスタンスが複数インストールしている場合、Schedule アイテムでスケジューリングされたコマンドは複数のサイトコアインスタンス上で実行されます。そのため同時起動すると問題の発生する処理の場合は同時に最大1つのインスタンスでしか動作しないようにするといった、考慮する必要があります。

メモ書き程度ですが、 /sitecore/システム/Tasks に作成するコマンドとスケジュールの定義アイテムとWeb.configの scheduling タグで定義されるタスクの関係の説明は以上となります。

具体的なコマンドの書き方やスケジュールアイテム、コマンドアイテムの作成方法はSDN の コンテンツクックブック あたりに乗っていると思いますのでそちらをご参照ください。