我正在使用Kafka-Connect API实现自定义Source Connector,可用于轮询REST-API并将JSON响应接收到Kafka主题中。现在我想知道如何实现SourceTask的轮询间隔,JDBC Connector如何提供。某处我必须将线程设置为睡眠状态,但我必须在哪里执行此操作?
答案 0 :(得分:3)
我在SourceTask
实现中通过添加类型为long
的私有字段来解决此用例来存储时间戳。在第一次poll()
调用时,该字段尚未初始化,因此将对已配置的REST-API进行轮询。在第一次调用时,提到的long
字段用当前时间戳初始化。在以下所有poll()
调用中,都会检查上一次调用的时间戳。如果自上一个poll()
以来经过的毫秒数小于两个轮询之间的配置间隔,我将线程发送到睡眠状态,因为已经过了配置的毫秒数。
答案 1 :(得分:0)