アプリケーションで Activiti フレームワークを使用しています。Activiti は、Activiti API を介して管理されます。
なんて問題:
アプリケーションでサーバーを再起動する必要があります。これは、次の 2 つのことを意味します。
- すべてのアクティブなアクティビティを正しく一時停止/停止する必要があります
- 停止したすべてのアクティビティを正しく更新する必要があります
現時点で、私のアプリケーションはSystem.exit(0)によって停止されています
質問:
- どうすればそれができますか?(上記の 2 つの項目を意味します)
- System.exit(0) で直面する問題は何ですか?
編集:
- はい、ありがとう。しかし、私は組み込みの Activiti を使用しています。それらは組み込みに適用されますか、それともスタンドアロン (REST 経由) のみに適用されますか?
- 非同期タスクはどうですか?
- ProcessEngine .close 関数を見ました。それは何のためですか?必要ですか?
EDIT2:
非同期タスクの中断の問題を説明するデモを作成します。次のように入力して取得できます。
git clone https://github.com/JOLO-/Activiti-Process-Suspend-Renew-Demo.git
デモについて:
ワークフローは次のようになります: [メイン プロセス] => [非同期サブプロセス] => [メイン プロセスに戻る]
各非同期プロセスには、毎秒何かを出力する無限ループが含まれています ( AddCandidateService.java )。
メインクラスを見る必要があります。そこで私は次のことをします:
- 2 つの主要なプロセスを開始する
- メインプロセスごとに、1 つの非同期サブプロセスを起動します (無限ループを使用)
- すべてのアクティブなプロセスを一時停止します
[期待される結果]:
すべてのプロセスとサブプロセスが計算を停止します
[実結果]:
非同期サブプロセスは計算を続行します