gpt4 book ai didi

java - 当我们通过停止mssql数据库强制拦截批量执行时如何找到加载的记录的状态

转载 作者:太空宇宙 更新时间:2023-11-04 09:46:02 25 4
gpt4 key购买 nike

我们正在为数据库实现连接或刷新重试逻辑。自动提交=true;

RetryPolicy retryPolicy = new RetryPolicy()
.retryOn(DataAccessException.class)
.withMaxRetries(maxRetry)
.withDelay(retryInterval, TimeUnit.SECONDS);

result = Failsafe.with(retryPolicy)
.onFailure(throwable -> LOG.warn("Flush failure, will not retry. {} {}"
, throwable.getClass().getName(), throwable.getMessage()))
.onRetry(throwable -> LOG.warn("Flush failure, will retry. {} {}"
, throwable.getClass().getName(), throwable.getMessage()))
.get(cntx -> {
return batch.execute();
});

我们希望通过停止后端的mssql db服务来拦截存储、更新、插入、删除记录。在某些时候,即使我们得到 org.jooq.exception.DataAccessException,批处理(批处理的子集)中的一些记录也会加载到数据库中。

有没有办法使用 jooq api 查找失败和成功加载的记录?

最佳答案

jOOQ API 无法立即为您提供帮助,因为这样的功能绝对超出了相对较低级别的 jOOQ API 的范围,而 jOOQ API 可以帮助您编写类型安全的嵌入式 SQL。它不会对您的业务逻辑或基础设施逻辑做出任何假设。

理想情况下,您将在此处运行自己的诊断。例如,您已经有一个 BATCHID 列,它应该可以检测哪个进程插入/更新了哪些记录。重新运行批处理时,您需要检测是否已尝试过该批处理,记住之前的 BATCHID,并获取之前尝试的 ID,以执行重新运行之前需要完成的任何操作。

关于java - 当我们通过停止mssql数据库强制拦截批量执行时如何找到加载的记录的状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55417305/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com