私たちは、何千通もの電子メールの送信を担当する、春のバッチ化された Hibernate ベースのアプリケーションを開発しています。
つまり、現在、1 つのステップで定義された 1 つのジョブがあります。
<job id="emailJob" xmlns="http://www.springframework.org/schema/batch" restartable="true"
job-repository="jobRepository">
<step id="emailJobFetchUsers">
<tasklet>
<chunk reader="emailItemReader" processor="emailItemProcessor" writer="emailItemWriter" commit-interval="1"/>
</tasklet>
<end on="COMPLETED"/>
<fail on="FAILED"/>
</step>
<listeners>
<listener ref="loggingListener"/>
</listeners>
</job>
- emailItemReader は HibernateCursorItemReader を拡張し、行のエンティティ (この場合、顧客が選択した電子メールを表すレコード) を返します。
- emailItemProcessor は顧客固有の電子メールを生成して送信します
- emailItemWriter は、最終送信日などの情報を持つエンティティを単純に更新します
これは機能しますが、すべてが1つのステップであるべきなのか、それとも各アクションに1つのステップが必要なのかはわかりません. 私の主な関心事は、再起動可能性と回復に関するものです。つまり、このような例外が 1 人のユーザーに対して発生する (無効な電子メール アドレスまたは電子メールの生成の問題が原因である可能性があります)、またはアプリケーション サーバーがダウンして再起動された場合、送信された場所から電子メールを受信できるようにする必要があります。オフ。
誰でも上記についてアドバイスできますか?
ありがとう、