Question
Standalone Orchestrator で1回のキュートリガーでジョブが2つ作成されるが、1つだけ作成されるようにする方法はありますか。
なお、現在は、UiPath.Orchestrator.dll.configを次のように設定しています。
<add key="Triggers.JobsCountStrategy" value="NoLimit" />
<add key="Features.QueueTriggers.PendingJobsStrategy" value="False" />
Answer
原因
これはOrchestrator v2024.4 よりも前のバージョンで報告された不具合によるもので、「UiPath.Orchestrator.dll.config」に次のような設定がある場合、
<add key="Triggers.JobsCountStrategy" value="NoLimit" />
<add key="Features.QueueTriggers.PendingJobsStrategy" value="False" />
「Triggers.JobsCountStrategy」の設定が「Features.QueueTriggers.PendingJobsStrategy」の設定に影響する場合があります。
なお、デフォルト値はこちらです。さらに、デフォルトでは config ファイルに「Triggers.JobsCountStrategy」の設定の記載はありません。
<add key="Triggers.JobsCountStrategy" value="PerProcess" />
<add key="Features.QueueTriggers.PendingJobsStrategy" value="True" />
参考リンク:
対応策
この不具合は、Orchestratorの2024.4で修正させれている事が確認されているので、Orchestratorをv2024.4以降にバージョンアップ することを推奨します。なお、バージョンアップが難しい場合は、以下の回避策の「変更後設定1」をお試しいただき、それでも改善しない場合は、「変更後設定2」をお試しください。これら config ファイルの変更でも回避できない場合は、Orchestrator側の設定ではなく「ワークフロー側での対応」をお試しください。
<対応方法>
1. Orchestratorをv2024.4以降にバージョンアップ
2. 変更後設定1 (こちらで事象を回避できたケースが報告されている)
UiPath.Orchestrator.dll.configの設定を下記に変更:
<add key="Triggers.JobsCountStrategy" value="PerTrigger" />
<add key="Features.QueueTriggers.PendingJobsStrategy" value="False" />
3. 変更後設定2
UiPath.Orchestrator.dll.configの設定を下記に変更:
<add key="Triggers.JobsCountStrategy" value="PerTrigger" />
<add key="Features.QueueTriggers.PendingJobsStrategy" value="True" />
- ワークフロー側での対応
キュートリガーにて実行されたジョブで起動されるワークフロー内で、トランザクションアイテムがあるか確認して頂き、無い場合は処理を終了するように設定します。こちらを設定する事でジョブが実行されますが、処理は行われないように回避する事が可能となります。
例)『トランザクション アイテムを取得』 アクティビティにて
取得したトランザクションを QueueItem 型の変数で取得し、取得されたトランザクションが「Nothing」の場合は、トランザクションが無い為、処理を終了させます。
なお、キュートリガーにより必ずしもジョブが作成されるとは限らないため、下記デフォルト設定(「Triggers.JobsCountStrategy」の記載は不要)のままにして頂き、このワークフロー側での対応の方式を取って頂くことをお勧めします。
<add key="Triggers.JobsCountStrategy" value="PerProcess" />
<add key="Features.QueueTriggers.PendingJobsStrategy" value="True" />