Standalone Orchestrator で1回のキュートリガーでジョブが2つ作成されるようになった

:grey_question: Question
Standalone Orchestrator で1回のキュートリガーでジョブが2つ作成されるが、1つだけ作成されるようにする方法はありますか。

なお、現在は、UiPath.Orchestrator.dll.configを次のように設定しています。

<add key="Triggers.JobsCountStrategy" value="NoLimit" />
<add key="Features.QueueTriggers.PendingJobsStrategy" value="False" />


:bulb: 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" />

  1. ワークフロー側での対応

キュートリガーにて実行されたジョブで起動されるワークフロー内で、トランザクションアイテムがあるか確認して頂き、無い場合は処理を終了するように設定します。こちらを設定する事でジョブが実行されますが、処理は行われないように回避する事が可能となります。

例)『トランザクション アイテムを取得』 アクティビティにて
取得したトランザクションを QueueItem 型の変数で取得し、取得されたトランザクションが「Nothing」の場合は、トランザクションが無い為、処理を終了させます。

なお、キュートリガーにより必ずしもジョブが作成されるとは限らないため、下記デフォルト設定(「Triggers.JobsCountStrategy」の記載は不要)のままにして頂き、このワークフロー側での対応の方式を取って頂くことをお勧めします。

<add key="Triggers.JobsCountStrategy" value="PerProcess" />
<add key="Features.QueueTriggers.PendingJobsStrategy" value="True" />