我正在编写一个弹簧批处理应用程序,它包含以下功能步骤:
这是一份轻松的工作场景。 在这种情况下,#3是面向块的步骤,剩余的可以作为tasklet或者听众一次执行。
问题:是否存在区分tasklet和侦听器的准则。 (例如:#4:发送邮件可以实现为监听器或步骤。)
答案 0 :(得分:1)
在考虑使用tasklet或listener时,需要从潜在的重试角度考虑它们。
如果你在第3步放置了一个监听器,那么每次你工作时都会运行它。所以,如果您在步骤3中出现故障(说明处理过程中途并且整个作业停止),则当您重试整个作业时,将再次调用您的监听器。
如果使用tasklet,默认情况下不会重新运行。也就是说,第1步和第2步是成功的,所以不需要再次执行,只需转到失败的步骤(#3)并重试。
所以,一个看待它的简单方法, - tasklet ==如果成功则运行一次 - listener ==每次运行(包括重试)