一个任务启动多个线程执行 , 中间意外停止 。 再次启动任务执行时 , 怎么保证幂等性 ?

发布于 2022-09-11 20:09:22 字数 507 浏览 17 评论 0

一个批量任务启动多个线程执行 , 中间意外停止 。 再次启动任务执行时 :

如何保证批量任务中的子任务不会重复执行 ?

具体的业务场景是 :

每天通过文件的形式批量的与第三方公司传递数据 ,暂称之为请求文件, 之后从第三方公司获取处理结果的文件 , 称之为结果文件

请求文件结果文件中每一行相互对应。

但是之前业务处理过程中没有将结果文件中的数据整体解析到数据库中 ,仅仅是拿到每一行中的结果码字段来记录处理结果。

现在所要做的事情是 : 将历史结果文件解析到数据库中。

每一行倒是有主键 , 通过主键可以保证数据的唯一性 , 目前解析任务中间断掉 , 再次启动解析任务 , 文件还是会被解析一遍 , 重复的数据去重 。 但是 , 我想要的效果是 , 文件不会被重复解析 , 不然很浪费时间的。。。。。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

美羊羊 2022-09-18 20:09:22

有点宽泛吧。
看你执行的的任务吧,在比如处理消息、数据库写入、任务啥的,做一个记录兜底,记录已经完成已经执行的记录和信息,当再次启动时候,在任务里面做判断吧。

断肠人 2022-09-18 20:09:22

幂等不幂等还是要看业务吧。估计你这么问肯定是多次执行会不幂等。如果你的程序禁止了重复执行不是就可以了么,这个不是语言本身支持的功能。

昨迟人 2022-09-18 20:09:22

意外终止,现场没保留肯定得重新算。而且你所谓的解析并没有写操作吧? 都是读操作肯定是幂等啊。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文