バッチ処理のためのタスクキュー
タスクキュー とは、時間と負荷のかかるバッチ処理をバックグラウンドで安全に実行するための仕組みです。
システム管理者が タスク をリクエストすると、タスクは キュー に入り、順番に実行されます。キューに入っている状態で、同じパラメーターでタスクを複数回リクエストしても、同じタスクが複数回実行されることはありません。また一度に1つであればシステムの負荷にならないタスクであっても、同時に10個実行するとシステムに大きな負荷を与えてしまう可能性があります。そういった負荷の高いタスクを適切な並行数で順番に実行することにより、システムの負荷を平準化します。
タスクをリクエストしてから実行が完了するまでの流れを次に示します。
機能
UCIDM では次の処理をタスクキューを介して順番に実行します。
スケジュール実行によるタスク処理
UCIDM には スケジュール設定機能 があります。定期実行やあらかじめ指定した日時でタスクを実行できます。
- CSV 一括処理
- ユーザーエントリーのライフサイクル処理
- 不要ファイルの削除処理
ソース LDAP に対するタスク処理
システム設定により、さまざまな機能があります。それらの機能を有効にした後、設定反映や同期処理をすべてのユーザーエントリーに実施したいときがあります。そういった任意のタイミングのバッチ処理をタスク実行します。
- CSV 一括処理
- メンバーシップルール機能 の同期処理
- パスワード保持機能 の固定パスワード設定
実行モデル
配送保証は at-least-once です。タスクの実行中にサーバー停止などで中断したタスクは、サーバー起動後に最初から再実行されます。
タスクはキューに入ると、入った順番に実行されます (FIFO) 。同時実行数が1のキューは、実行中にエラーが発生して失敗しない限り、実行順序が保証されます。
タスクの状態は次のように遷移します。
設定・監視
タスクの制御ならびに実行状況は タスクキュー画面 で確認できます。
前の処理を実行中でキューで待ち状態のタスクは削除することで実行をキャンセルできます。また、実行中タスクをキャンセルすることもできますが、すでに実行されて変更されてしまった結果を元に戻すことはできません。