コンテンツにスキップ

キューイング

プリザンターの年間サポートサービスのページへのリンクバナープリザンターの年間サポートサービスのページへのリンクバナー

概要

キューイングをマルチテナント環境で利用する

キューイングをマルチテナント環境で利用する場合は、以下の手順に従ってください。

  1. マルチテナント管理機能を参照し、テナントを作成してください。
  2. キューイングを参照し、キューイング機能を有効化してください。
  3. 本マニュアルを参照し、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. テナントごとの処理量は考慮されないため、処理の重いテナントが同じワーカーに集中する可能性があります。
  2. ワーカー数は、サーバがバックグラウンド処理に使えるスレッド数を、タイムアウト監視やリマインダー通知などの定期処理と共有します。そのためワーカー数を増やしすぎると順番待ちが発生し、ジョブの実行が遅れる可能性があります。

前提条件

  1. 年間サポートサービスの下記プラン契約者限定の機能です。
エントリー ベーシック ベーシックプラス ビジネス ビジネスプラス アンリミテッド
〇

対応バージョン

対応バージョン 内容
バージョン1.5.8.0 以降 キューイング機能をマルチテナントに対応