キューイング:マルチノード構成下における運用の注意事項

(本機能は[Extensionsトライアル](/manual/pleasanter-extensions-trial)で試用可能です)
## 概要
キュー方式バックグラウンドジョブを複数ノード(複数台)構成で運用する場合、以下の2点を設定してください。設定しない場合、ジョブの二重実行やダウンロード失敗が発生します。
1. Quartzクラスタリングの有効化
1. 出力ファイル保存先を共有ストレージに指定
なお、複数ノード構成の目的は**可用性(冗長化)**です。1ノードが停止しても他ノードが処理を継続できますが、キューに登録されたジョブのスループットは向上しません(理由は「1-4. スループットへの影響」を参照してください)。
## 1. Quartzクラスタリングの有効化
複数ノード構成では、Quartzのクラスタリングを必ず有効化してください。
### 1-1. 設定
[Quartz.json](/ja/manual/quartz-json)のClustering.Enabledをtrueに設定します。
| 項目 | 説明 | 既定値 |
| --------------- | ---------------------------------------------- | ------------------- |
| Enabled | クラスタリングの有効化。複数ノードではtrue必須 | false |
| SchedulerName | スケジューラ名(全ノードで同一にする) | PleasanterScheduler |
| InstanceId | ノード識別子。AUTO推奨(自動採番) | AUTO |
| CheckinInterval | クラスタチェックイン間隔(ms) | 15000 |
| TablePrefix | Quartz管理テーブルの接頭辞 | QRTZ_ |
### 1-2. CodeDefinerの実行
パラメータClustering.Enabledをtrueにした後は、必ずCodeDefinerを実行してください。データベース内にQuartzを使用するためのテーブル(QRTZ\_系)が生成されます。
### 1-3. 有効化しなかった場合の影響
クラスタリングが無効(既定)のまま複数ノードを起動すると、各ノードのジョブディスパッチャ(キューに登録されたジョブを定期的に確認して実行する処理)が互いを認識せず独立してジョブテーブルをポーリングし、同時にジョブを取得・実行します。その結果、以下が発生します。
1. 同一ジョブが複数ノードで二重実行される
1. テナント単位の直列実行制御が破綻する
1. スタックジョブ回収処理が、他ノードで実行中のジョブを巻き戻す(失敗扱いにする)
クラスタリングを有効化すると、Quartzは排他制御によって、ジョブディスパッチャを実行しているノードを**常に1台に限定**します。これにより上記の問題を解消します。
### 1-4. スループットへの影響
1-3.のとおり、クラスタリング有効時は、ある瞬間にジョブディスパッチャを実行しているノードが常に1台に限定されます。複数ノードのジョブディスパッチャが同時に稼働してキューを分担処理する仕組みではないため、ノードを増やしてもキューに登録されたジョブのスループットは向上しません。
ノードを増やすことで得られる効果は、稼働中のノードが停止した場合に、別のノードのジョブディスパッチャが処理を引き継げる**可用性(冗長化)**です。
## 2. 出力ファイル保存先に共有ストレージを指定
出力ファイルの保存先を、**全ノードからアクセス可能な共有ストレージに設定**してください。
### 2-1. 設定
パラメータ[BackgroundJobs.json](/ja/manual/backgroundjobs-json)のOutputFilePathに、共有フォルダ、NASなどの全ノード共通でアクセスできるパスを指定してください。未指定またはnullの場合、ジョブの登録直後にエラーとなります。
### 2-2. 共有ストレージを設定しなかった場合の影響
クラスタリング有効時、ジョブを実行するノードは一定しません(負荷やフェイルオーバーにより変動します)。そのため出力先が特定のノードにしか存在しないパスを指定していると、出力ファイルをダウンロードするときにファイルを見つけられず、ダウンロードに失敗します。
このため、必ず全ノードから同一パスで参照できる共有ストレージを指定してください。
### 2-3. ダウンロード中のジョブ削除に関する注意
あるノードで結果ファイルをダウンロード中のジョブを別ノードから削除操作すると、削除がブロックされずに実行され、ダウンロードが失敗する可能性があります。結果ファイルのダウンロード中の排他制御は、**各ノード内でのみ有効**です(ノードをまたぎません)。
## 3. 関連パラメータ一覧
| パラメータファイル | パラメータ | 役割 | 複数ノードでの推奨 |
| ------------------- | ------------------------------- | -------------------------- | ------------------------ |
| Quartz.json | Clustering.Enabled | Quartzクラスタリング | true(必須) |
| BackgroundJobs.json | OutputFilePath | エクスポート成果物の出力先 | 全ノード共有パス(必須) |
| BackgroundJobs.json | BackgroundQueue | キュー方式の有効化 | 運用に応じて |
| BackgroundJobs.json | BackgroundJobDispatcherInterval | ポーリング間隔(秒) | 既定値60秒 |
| BackgroundJobs.json | BackgroundJobTimeout | ジョブタイムアウト(秒) | 運用に応じて設定推奨 |
## 対応バージョン
|対応バージョン|内容|
|:--|:--|
|バージョン1.5.6.0|機能追加|
## 関連情報
<div id="ManualList"><ul><li><a href="/ja/manual/backgroundjobs-json">パラメータ設定:BackgroundJobs.json</a><span>2026/07/14 up</span></li>
<li><a href="/ja/manual/quartz-json">パラメータ設定:Quartz.json</a><span>2026/01/13 up</span></li></ul></article></div><input id="SearchTextHidden" type="hidden" value="" />



