0

フローフレームワーク(つまりJava)を使用したAmazon SWFで利用可能なサンプルを調べていました。サンプルには、ワークフローの実行を開始する「メイン」を持つクラスが1つあることに気付きました。また、「メイン」を持つ他の同様のクラスもあります。ワークフローワーカーとアクティビティワーカー(つまり、ワークフローホストとアクティビティホスト)を開始します。

これは、ワークフローを実行するために、3つのクラスすべての実行コードをvoidメインに配置する必要があることを意味しますか?つまり、ワークフローホスト、アクティビティホストを開始し、自分でワークフローを開始する必要がありますか?または、WorkFlowHostクラスとActivityHostクラスを指定された形式で定義してから、ワークフロークライアントファクトリを使用してワークフローを開始する必要がありますか?

4

1 に答える 1

1

SWFワークフローには、ワーカー、アクティビティ、クライアントの3つのコンポーネントがあります。ワークフローホストクラスはワークフローワーカーを開始し、アクティビティホストはアクティビティワーカーを開始します。ワークフローおよびアクティビティワーカーは、さまざまなワークフロータスクで作業するために、常に稼働している必要があります。このため、これらのクラスをに含める必要がありますvoid main

クライアント(ワークフロークライアントファクトリを使用)は、必要なときにいつでもワークフローの開始を要求できます。

例として、簡単にするために、同じmainメソッドに3つのクラスすべてを含めることができますが、理想的には、クライアントは、アクティビティとワーカーを継続的に実行しながら、必要なときにいつでもワークフローの開始/終了を呼び出すことができる異なるアプリケーション/メインの一部である必要があります。

于 2012-07-09T20:27:24.613 に答える