如何通过异常在 Java 中并发写入期间发出有关 'retry exceeded' 的信号?

How to signal about 'retry exceeded' during concurrent write in Java through Exception?

我有 Java class 打算支持分布式容器。在 'change publication' 期间总是存在冲突的可能性,因此实施了重试。但是总有重试次数超出的概率。

是否有任何 'standard' 或推荐的方法来在 Java 中发出这种情况的异常信号? java.io.IOException(我现在使用的)看起来不相关,因为没有实际的 IO 错误,这只是并发性的逻辑冲突。有没有更具体的建议?

对于我正在处理的应用程序,我们保留 List 导致作业重试的异常,然后当作业终止时,我们记录(通过 SLF4J) a serialized JobSummary object that includes the list of exceptions and their stack traces (gained via ExceptionUtils)以及是否超过重试次数(即作业最终是成功还是失败)。如果我们选择抛出异常而不是记录日志,那么我们就会将 JobSummary 数据放在 RumTimeExceptionException 的子 class 中(如@Gábor 所建议的那样) Bakos 在评论中)。一般来说,滚动自己的异常 class(es) 没有错,如果这样做可以提供更好的 debugging/logging/etc 数据。