schedules : { AUTOMATIC | schedule-spec ,... }
schedule-spec : { START TIME start-time | BETWEEN start-time AND end-time } [ EVERY period { HOURS | MINUTES | SECONDS } ] [ ON { ( day-of-week, ... ) | ( day-of-month, ... ) } ] [ START DATE start-date ]
AUTOMATIC 転送ルールでは、メッセージのステータスが変更されたり、ネットワーク・ステータスに変更があった場合に、ルールが評価されます。削除ルールでは、メッセージ転送が開始されたときに、削除ルール条件を満たすメッセージが削除されます。
schedule-spec AUTOMATIC 以外のスケジュール仕様には、条件が評価される時刻を指定します。指定された時刻になると、対応する条件が評価されます。
START TIME イベントがスケジュールされた各日の最初のスケジュール時刻。START DATE を指定した場合、START TIME はその日付を参照します。START DATE を指定しない場合、START TIME の対象となる日付は、現在の日付 (指定された時刻を過ぎていない場合) とそれ以降の各日 (スケジュールに EVERY または ON が含まれる場合) となります。
BETWEEN ...AND ... 1 日のうち、スケジュールされた時刻が発生する範囲。START DATE を指定した場合、スケジュールされた時刻はその日が来るまで発生しません。
EVERY 連続してスケジュールするときのイベント発生の間隔。スケジュールされたイベントは、その日の START TIME より後、または BETWEEN ... AND で指定された範囲内でのみ発生します。
ON スケジュールされたイベントが発生する日のリスト。EVERY を指定した場合、デフォルトは毎日です。これらは曜日または日付として指定できます。
曜日は、Mon、Tues のようになります。Monday のような完全形も使用できます。使用言語が英語でない場合、クライアントによって接続文字列で要求された言語でない場合、サーバ・ウィンドウに表示される言語でない場合は、完全形を使用します。
日付は、0 ~ 31 の整数で指定します。0 は月の末日を表します。
START DATE スケジュールされたイベントが開始される日付。デフォルトは現在の日付です。
指定した条件に対し、複数のスケジュールを作成できます。これにより、複雑なスケジュールを実装できます。
スケジュール仕様の定義に EVERY または ON が含まれる場合、そのスケジュール仕様は反復されます。EVERY と ON のどちらも使用されていない場合、そのスケジュールは最大でも 1 回しか実行されません。反復されないスケジュールを作成する場合に、そのスケジュールの開始時刻が過ぎているときは、エラーになります。
スケジュール済みの時刻になるたびに、対応する条件が評価され、次のスケジュール日時が計算されます。
次のスケジュール時刻を計算するときには、スケジュールが調べられ、現在以降の次のスケジュール時刻が決定されます。スケジュールに毎分と指定されている場合で、条件の評価に 65 秒かかるときは、2 分ごとに実行されます。実行を重複させたい場合は、複数のルールを作成する必要があります。
EVERY 句を使用した場合は、次のスケジュールされた時刻が現在の日付にあり、BETWEEN ... AND で指定された範囲の終わりより前であるかどうかを調べます。そうであれば、それが次のスケジュールされた時刻となります。
次のスケジュールされた時刻が現在の日付にない場合は、イベントが実行される次の日付を調べます。
その日付の START TIME、または BETWEEN ... AND で指定された範囲の始まりを確認します。
QAnywhere スケジュール構文は、SQL Anywhere CREATE EVENT スケジュール構文に由来します。
キーワードは、大文字と小文字を区別しません。
次の例に示すサーバ側の転送ルール・ファイルは、sample_store_id というクライアント・メッセージ・ストア ID で識別されるクライアントに適用されます。この転送ルール・ファイルでは、二重のスケジュールを作成します。まず、優先度の高いメッセージが
1 時間に 1 回送信されます。スケジュールは every 1 hours
(1 時間ごと) に設定されており、条件は ias_priority=9
です。さらに、午前 8 時から 9 時までの間は、優先度の高いメッセージが 1 分ごとに送信されます。
[sample_store_id] ; This rule governs when messages are transmitted to the client ; store with id sample_store_id. ; START TIME '06:00:00' EVERY 1 hours = ias_Priority = 9 BETWEEN '08:00:00' AND '09:00:00' EVERY 1 minutes = ias_Priority = 9 |
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |