ビジネス ロジックの一部を WF4 ワークフローに置き換えようとしています。
これらはすべて非常に典型的なワークフローです。ユーザー アクションによるインスタンスの作成、データベースへの取り組み、次のユーザーの確認などです。
ワークフロー ホストの要件は次のとおりです。
- データベースに格納された XAML 定義からワークフローを作成する (DynamicActivity)
- 異なるバージョンでワークフローをサポート
- 長時間ベースのイベントをサポートします (現在、通知は 5 日後、ワークフローは 30 日後にロールバックされます)。
- 多くのワークフローの多くのインスタンスをサポートします (約 4000 の進行中の 10 のワークフローを特定しましたが、一度に処理されるのはそのうちのほんのわずかです)。
- サービスの再起動後にすべての状態を保持 (時間ベースのイベントを含む)
- 呼び出し元のユーザーを認証します (可能な場合は WindowsAuthentication)
移行作業の一環として、「WCF ワークフロー サービス アプリケーション」プロジェクトを使用していくつかの POC を構築しましたが、私が見る限り、これらはすぐには可能ではありません。
#2 は WCF ルーティングを介して行われ、WSH が #3 を処理すると理解しています (#5 を考えると、これは本当ですか?) が、#1 がデフォルトからどのように機能するかわかりませんプロジェクト構造。
私は WorkflowApplication インスタンスを使用して #1 を解決しましたが、これはブックマークを使用して入力イベントごとに再開することに依存しており、アイドル状態のワークフローをアンロードせずに WorkflowApplication がニーズに合わせて拡張されるとは確信していませんでした。これにより Delay アクティビティが中断されます。
だから、あなたがここまで私に固執しているなら:
- 既定のプロジェクトで、またはその一部を自分で実装することによって、WSH を使用してこれらすべてを実現する方法はありますか?
- 長い期間とワークフローのアンロードと再ロードが必要になる可能性があることを考えると、真のウェイク時間を記録し、ホスト プロセスによって再開されるワークフローをアンロードする独自の「DurableDelay」アクティビティを作成する方がよいでしょうか?
- WSH で対応できない場合、既存の代替手段はありますか?
ワークフローのライフサイクルを処理するために独自のホスト サービスを作成することも嫌いではありません。また、提案された設計も作成しましたが、既製のソリューションがあることが判明した場合、そのルートを開始したくありませんでした。 .
乾杯