2011-12-23 18 views
0

私はSpringバッチで新しく、Springバッチでビジネスユースケースを実装する際に問題が発生しています。Springバッチの概念に明確化が必要

基本的には、ニュースレターの購読者リストというデータベースからデータを読み込んでいます。次に、各加入者に電子メールを送信するだけでなく、電子メールが送られた加入者を知るためにデータベースにデータを挿入する必要があります。

私は、processメソッドがMimeMessageを返し、サブスクライバを引数として持つItemProcessor実装を使用します。このプロセッサに関連するライタは、タイプがorg.springframework.batch.item.mail.javamail.MimeMessageItemWriterです。

問題は、サブスクライバのリストを引数としてとり、入力としてすべてが上記のItemProcessorのMimeMessageであるデータベース挿入(おそらくCompositeItemWriterを使用)用に別のライターが必要なことです。

誰でもお手伝いできますか?

答えて

1

ItemProcessorインターフェイスを使用してメッセージをデータベースに保存することは、概念的には正しくないと言いました。あなたはItemWriterを使用する必要があります。 DBへの書き込みをItemWriterとして実装し、メールメッセージをItemWriterとして送信し、CompositeItemWriterを組み合わせて組み合わせることができます。

  • Subscriberがこれらの項目の作者に渡されます。
  • SubscriberからMimeMessageへの変換は、MimeMessageItemWriter(このライターによって集約される)に転送する前に、2番目のライターによって内部的に行われます。
  • DBに保存した後にメッセージを送信する必要があります。メッセージの送信に問題が発生した場合(その機能が必要な場合)DBがロールバックされ、バッチサイズが1になる必要があります正常に送信されたすべての通知を誤って破棄します)。
関連する問題