タイマーを使用する
OutSystemsアプリケーションでは、タイマーを使用して非同期ロジックを実行できます。事前に指定した時刻にメールを送信するといったバッチ処理を実行する、あるいはデプロイ後にアプリケーションを構成するロジックを実行するといった際に有効です。
タイマーの処理方法
タイマーは、OutSystemsスケジューラサービスによって処理されます。このサービスは、実行可能状態にあるタイマーを確認して、そのアクションを実行します。現在時刻がタイマーのランタイムプロパティNextRun
と等しいかそれを過ぎている場合に、タイマーは実行可能状態になります。
タイマーで実行されるアクションは時間がかかり処理能力を必要とすることが多いため、OutSystemsスケジューラサービスでは同時に実行できるタイマーの数が定められています。デフォルトでは、同時に実行可能なタイマーは3つです。この数は、OutSystemsの構成ツールで変更できます。
3つ以上のタイマーが同時刻に実行するようにスケジュール設定された場合、優先度の高いタイマーが先に実行されます。
タイマーアクションが正常に終了すると、タイマーのNextRun
プロパティは次の実行時刻に更新されます。この時刻は、タイマーのScheduleプロパティを基に計算されます。
タイマーが実行されない場合、予期せぬエラーが発生した場合、またはアクションがタイムアウトした場合は、タイマーのNextRun
プロパティは更新されません。つまり、次にOutSystemsスケジューラサービスが実行可能状態にあるタイマーを確認したときに、タイマーが選択され実行されます。
タイマーが正常に動作するために、環境のデータベース、コントローラ、すべてのフロントエンドが同じタイムゾーン内にあり、それらのシステムクロックが同期されていることを確認してください。
タイマーのタイムアウト
デフォルトでは、タイマーのタイムアウト時間は20分です。タイムアウト時間は、タイマーのTimeout in Minutes
プロパティを設定することで変更できます。
タイマーに関連付けられたアクションが事前に定義された時間内に終わらなかった場合、アクションを中止してタイマーが停止します。これはエラーとして判断されるため、Service Centerの[Environment Configuration]領域で設定した再試行回数(デフォルトは3回)だけタイマーが再実行されます。
タイマーのセッション
タイマーなどの非同期ロジックとプロセスアクティビティのセッションは、異なります。つまり、タイマーに関連付けられたアクションを実行すると、セッション変数はすべてデフォルト値になります。
このセクションの記事
- タイマーを作成して実行する
- タイマーは設計時に作成でき、実行スケジュールは設計時または実行時に設定できます。
- タイマーを監視する
- タイマーを監視する方法について説明しています。