一度に JBPM5 でプロセスを一括 (たとえば 100 インスタンス) で起動しています。そして、プロセスのすべてのタスクは、外部プログラムによって非同期的に開始および完了されます。このシナリオでは、JBPM エンジンが次のタスクを生成するのに多くの時間がかかっているため、全体的なパフォーマンスが影響を受けています。(例: 100 個のプロセス インスタンスを完了するのに平均 45 分かかります) jbpm5 エンジンのパフォーマンスを最適化する方法を教えてください。
3 に答える
今では高速です。によってタスクを完了した後
client.complete()
コマンドを使用してサーバーに通知/シグナリングしています
ksession.getWorkItemManager().completeWorkItem(id, data);
これにより、エンジンは後続のタスクをより高速に生成し、処理のためにそれを取得することができました。しかし、これはタスクを完了するための理想的な方法ですか。
100 個のプロセス インスタンスを完了するのに 45 分は長すぎるように思われるため、何かが間違っているか、構成が間違っているに違いありません。しかし、何が間違っているのかを理解するのは困難です。セットアップに関する詳細情報と、実際に多くの時間を費やしているものはありますか? どのタイプの外部サービスを呼び出していますか? 私たちが見ることができるプロトタイプはありますか?
クリス
はい、それはエンジンではなく、ドメインの問題として聞こえます。少し前に、インメモリ プロセスと DB 永続化プロセスのパフォーマンス テストを行ったところ、エンジンによって導入されたレイテンシは、アクティビティ (メモリ内) あたり 2 ミリ秒未満、アクティビティ (データベース内に永続化) あたり 5 ミリ秒未満でした。エンジンをどのように正確に呼び出していますか、どのようにホストしていますか? どんな電話をしているの?外部サービスが応答するのにかかる時間を測定する方法はありますか?
乾杯