【发布时间】:2009-03-05 12:06:12
【问题描述】:
在服务器上可能会发生不同的临时(暂时)错误。例如 OutOfMemoryError 或与数据库的连接中断。
我认为稍后再重复这样的工作是个好主意。当然它不应该是无限循环,因为错误不是暂时的。
有什么好的 API 可以帮助解决这个问题吗?或者指导我如何自己实现它。它应该有如下参数:
- 重复计数
- 最大执行时间
- 需要空闲内存
- 等
【问题讨论】:
-
只是挑剔,OutOfMemoryErrors 可能不是暂时的;如果您有一些数据需要的内存超出了您的 JVM 配置使用的内存,那么重试该作业将无济于事。
-
在服务器上,大多数情况下会发生 OutOfMemoryError,因为有许多客户端请求是临时的。几秒钟后,这可能看起来是其他的。
-
如果由于负载而出现 OutOfMemoryError,则需要以某种方式限制负载(将请求排队或拒绝它们)。 OutOfMemoryErrors 可能发生在任何地方,因为其他地方的内存使用情况。你不能只用 try/catch 包围代码的一部分。
标签: java api error-handling