问题描述
我有一个基于KCL(2.x)的使用者,它以异步方式处理记录。检索到的每批记录都在有界内存队列中排队,然后使用执行程序服务进行处理。我的问题是我无法再在processRecords
方法中执行检查点操作,因为在实例失败的情况下,队列中任何未处理的记录都将丢失。是否有建议的使用方式来处理此问题?我确定了3种应处理的特定情况:
-
在消费者按预期方式工作时的定期检查点
-
完成对特定分片的记录处理时的检查点,这将触发
shardEnded
方法。文档指出必须执行检查点操作,否则所有子碎片将无法取得进展。 -
在请求关闭调度程序时触发检查点,触发
shutdownRequested
方法。
我能想到的唯一方法是与我的记录处理线程以阻塞的方式协调这些方法,以确保仅在处理了待处理的记录后才执行检查点,但是我可能会遗漏一些东西,因此您的反馈意见或一些相关示例将不胜感激。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)