キューイング
概要¶
キューイングをマルチテナント環境で利用する¶
キューイングをマルチテナント環境で利用する場合は、以下の手順に従ってください。
- マルチテナント管理機能を参照し、テナントを作成してください。
- キューイングを参照し、キューイング機能を有効化してください。
- 本マニュアルを参照し、BackgroundJobs.jsonのパラメータWokerCountに適切な値を設定してください。
なお、本機能をマルチノード構成で利用する場合は、以下のマニュアルを参照してください。
キューイングにおけるワーカーの仕事¶
ワーカーは、キューへ投入された待機中のジョブを起動する仕事を担うスレッドです。
マルチテナント環境では、テナントごとに独立したキューが用意されます。ワーカーは各テナントのキューを順番に確認し、待機中のジョブを開始します。ワーカーは、ジョブの完了を待たずに次のテナントへ進むため、1台のワーカーでも複数テナントのジョブを並行して開始できます。
シングルテナント環境では、キューを処理するワーカーは常に1台です。設定によりワーカーの台数を変更することはできません。ワーカーは唯一のキューを順番に処理します。
複数のワーカーによる分担¶
マルチテナント環境でテナント数が多い場合、1台のワーカーがすべてのテナントを一巡するのに時間がかかります。確認の順番が後ろのテナントでは、ジョブの開始が遅れます。
そこで、ワーカーの数を増やし、テナントを複数のワーカーで分担させます。1つのワーカーが担当するテナント数を減らし、このような遅れを抑制できます。
※上記T1~T9は任意のテナントを表します。
ワーカー数の制御¶
ワーカーの数はBackgroundJobs.jsonのパラメータWokerCountで設定できます。なお WorkerCount は、マルチテナントが有効なライセンスの場合にのみ機能します。シングルテナントのライセンスでは分担作業は行われず、WorkerCountに2以上の値を指定しても1として扱われ、その旨がシステムログへ記録されます。
実際に稼働するワーカー数¶
実際に稼働するワーカー数は、WokerCountの設定値から、以下のルールに基づき決まります。
| WokerCountの設定値 | ワーカー数 |
|---|---|
| 1(シングルテナント構成時) | 常に1 |
| null | 1 |
| 0以下の値 | 1 |
| 安全上限以下の値L | L |
| 安全上限より大きい値 | 安全上限 |
ワーカー数の安全上限¶
ワーカー数の安全上限は、クラスタ構成が有効か否かに応じて、下表のように変わります。
| クラスタ構成 | ワーカー数の安全上限 |
|---|---|
| 有効 | Quartz.jsonのパラメータClustering.MaxConcurrencyの値(0以下なら10) |
| 無効 | 10(固定値) |
制限事項¶
- テナントごとの処理量は考慮されないため、処理の重いテナントが同じワーカーに集中する可能性があります。
- ワーカー数は、サーバがバックグラウンド処理に使えるスレッド数を、タイムアウト監視やリマインダー通知などの定期処理と共有します。そのためワーカー数を増やしすぎると順番待ちが発生し、ジョブの実行が遅れる可能性があります。
前提条件¶
- 年間サポートサービスの下記プラン契約者限定の機能です。
| エントリー | ベーシック | ベーシックプラス | ビジネス | ビジネスプラス | アンリミテッド |
|---|---|---|---|---|---|
| 〇 |
対応バージョン¶
| 対応バージョン | 内容 |
|---|---|
| バージョン1.5.8.0 以降 | キューイング機能をマルチテナントに対応 |


