我正在使用 AWS Kinesis 客户端库。
我需要一种在部署期间关闭 Kinesis Worker 线程的方法,以便我停在检查点而不是processRecords()
.
我看到一个关闭布尔值存在,Worker.java
但它是私有的。
我需要的原因是检查点和幂等性对我来说至关重要,我不想在批处理中间终止该进程。
[编辑]
感谢@CaptainMurphy,我注意到Worker.java
公开shutdown()
方法可以安全地关闭工作人员和LeaseCoordinator
. 它不做的是shutdown()
在IRecordProcessor
. 它突然终止,IRecordProcessor
而不用担心状态。
我确实理解 KCL 不保证检查点之间的幂等性,开发人员应该使设计容错,但我觉得无论如何都IRecordProcessor
应该在停止之前正确关闭检查LeaseCoordinator
点。