改行ぐらいでしか編集のやり方がまだわかってなくて見づらいと思いますが、よろしくお願いいたします。
不明な点は以下のリンクからご確認お願いいたします。
タイマーを作成・実行する
1タイマーの作成(ODC Studio)
1.1手順
①画面の右側で[Events]タブを選択し、Timersフォルダを右クリックして[Add Timer]を選択。
②[Name]フィールドにタイマーの名前を入力。
③Server Actionを選択(既存のServer Action、またはNew Server Actionを作成)。
④アクションに入力パラメータがある場合:タイマー作成時に渡す値を指定。
⑤出力パラメータがある場合:タイマーを起動した外部から直接はアクション完了まで(完了後も)参照不可。
※詳細
・タイマーアクションが生成した出力値や結果は、
アクションの内部ロジックでエンティティ(データベース)に格納されてから、初めて
他のOutSystemsロジック(画面、別のアクション、APIなど)でそのデータを「使える」ようになる。
2タイマーの実施方法
⑴タイマーを自動的に実行するようにスケジュールを設定(Service StudioのScheduleプロパティで設定、またはODC Portalで変更)
⑵特定の時刻を待たずにタイマーを強制的に実行(ODC Portalの「Run now」ボタン、またはロジック内の Wake Timer
アクション)
3タイマーのスケジュール設定
⑴設計時にタイマーのプロパティでスケジュールを設定する。
・「プロパティ」は「設計図の一部」のため。
タイマーがどうあるべきか、プロパティはどんな初期値を持つべきかを宣言的に定義する。
・繰り返し(日次/週次など)や「パブリッシュ毎に実行」(初期構成/ブートストラップ)を定義可能
⑵実行時にODC Portalでタイマーのスケジュールを設定する
・アプリの運用上の「調整」となる。
例えば、テスト環境で動かすときは毎日午前9時でいいが、本番環境ではサーバー負荷を考慮して
午前3時に変更するといった、環境ごとの上書き設定に近いもの。
・App>Configurations>Timersでステージごとにスケジュールをカスタマイズ
・Portal側設定が実行時の有効スケジュールとして適用
・特に変更しない限り、すべてのステージでデフォルト設定が使用される。
4タイマーを強制実行する(スケジュール待ちをせず起動)
⑴方法
・Wake<タイマー名>ビルトインアクション(ロジックから呼び出し)
・ODCPortalでタイマーを実行する。「Runnow」
⑵注意点
・スケジュール自体は変更されない(通常運行は継続)。
・同一タイマーの二重起動は不可(実行中なら終了後に次が開始)。
・無効化されていてもスケジュール定義済みなら、強制実行でできる限り早く実行され再度有効化される。
※詳細
本来スケジュールが設定されているが、現在無効にされているタイマーがあったとする。
これを手動で起動した場合、タイマーはすぐに実行キューに入って実行される。
さらに、この手動実行をきっかけとして、タイマーは自動的に『有効』な状態に戻されるので、
次回のスケジュールが来たらまた自動で動き出すようになる。
⑶Wake<タイマー名>詳細
・概要
‐Wake Timerアクションは、OutSystemsで定義されたタイマーをプログラムによって
(手動スケジュールを待たずに)即座に実行させるためのビルトイン(組み込み)機能。
・目的
‐スケジュールに関係なく、任意のタイミングでタイマーを実行したい場合に利用
・形式
‐Wake<タイマー名> という形式で自動生成されるビルトインアクション
・場所
‐アプリケーションのロジックフロー(Server Action, Client Action, Screen Actionなど)内で使用
・パラメータ
①入力パラメータ
‐受け取りません。
②出力パラメータ
‐返しません。
‐Wake Timer自体はタイマーの実行をトリガーするだけで、
タイマーアクションの結果を直接受け取ることはできない。
‐タイマーアクションの結果が必要な場合は、タイマーアクション内で
データベースエンティティに保存するなどのやり方で習得する。
・挙動
Wake<タイマー名>アクションが実行されると、以下の処理が行われる。
①NextRun プロパティの更新
‐Wake Timerが呼び出されると即時実行のために現在時刻に変更される。
‐通常は、NextRunは定義されたスケジュールに基づいて設定される。
②スケジューラーによる処理
‐タイマーはOutSystemsプラットフォームの内部スケジューラーに渡され、
他のタイマーやシステムリソースの優先度に応じて可能な限り早く実行される。
③Wake Timerアクションの使用手順 (ODC Studio)
‐[Events]タブのTimer要素を展開。
‐Wake<タイマー名> アクションをドラッグし、ロジックで使用。
5ODCPortalでタイマーを強制に実行する手順
①Appタブで対象アプリを選択
②左メニュー「Configurations」>「Timers」
③対象タイマーを選択し、Scheduleセクションで実行タイミングを設定しApply