Batchlet与EJB Timer

时间:2017-04-19 20:41:45

标签: java java-ee java-batch

我做了一个应用程序来对网络节点进行一些测试,比如ping测试,检索磁盘空间等等。

我使用预定的小程序来运行操作,但我想知道它是否适用于批处理?

EJB计时器应该更相关吗?此外,当我运行批处理时,我的glassfish服务器会保留批处理作业的日志,并且我不需要它(特别是在一天中产生的批处理作业数量)。

如果我需要在相同的计划时间内运行一些工作,我认为批处理可以做到但是EJB计时器呢?

你能否就实现这一目标的方法向我提出意见?

谢谢, Ersch

2 个答案:

答案 0 :(得分:1)

当您的任务在眨眼(或其周围)执行时,使用EJB计时器是合适的。

否则使用批处理机制。

从EJB计时器执行的长时间运行的任务可能会有问题,因为它们在通常在短时间后超时的事务中执行。增加此事务超时也会增加数据库以及可能影响应用程序正常运行的其他资源锁的可能性。

答案 1 :(得分:1)

这不是一个明确答案的问题,但是将您的应用程序作为批处理作业进行分解需要花费一些成本,我会看看我能看到它是否值得这样做。< / p>

因此,您正在考虑由单个Batchlet步骤组成的作业。好吧,“重启”功能没有任何好处,既不是在作业中的失败步骤,也不是在一个块步骤中利用检查点。小批量编程模型非常简单......即使你真的喜欢@BatchProperty,你现在也必须处理XML。

如果您想要启动,查看和管理这些执行以及其他批处理作业,这只会开始变得更有趣。这可能是因为您正在使用提供某种特定于实现的附加功能的实现。这方面的一个例子可能是与外部调度程序软件的集成,允许它安排作业。在另一个极端情况下,如果您发现在一个地方(作业存储库,通常是持久数据库)持有所有批处理作业执行的持久记录的价值,那么这也可能使您有价值。

但如果您不关心其中的任何一个,那么可以采用EJB计时器。