【发布时间】:2017-09-03 00:17:24
【问题描述】:
我正在使用 Kafka-Connect API 实现自定义源连接器,可用于轮询 REST-API 并将 JSON 响应接收到 Kafka 主题中。
现在我想知道如何实现 SourceTask 的轮询间隔,JDBC 连接器如何提供轮询间隔。我必须在某个地方将线程设置为睡眠状态,但我必须在哪里执行此操作?
【问题讨论】:
标签: java apache-kafka apache-kafka-connect
我正在使用 Kafka-Connect API 实现自定义源连接器,可用于轮询 REST-API 并将 JSON 响应接收到 Kafka 主题中。
现在我想知道如何实现 SourceTask 的轮询间隔,JDBC 连接器如何提供轮询间隔。我必须在某个地方将线程设置为睡眠状态,但我必须在哪里执行此操作?
【问题讨论】:
标签: java apache-kafka apache-kafka-connect
使用max.poll.interval.ms。
【讨论】:
我在我的SourceTask 实现中解决了这个用例,方法是添加一个long 类型的私有字段来存储时间戳。在第一次 poll() 调用时,该字段尚未初始化,因此已配置的 REST-API 被轮询。在第一次调用时,提到的long 字段将使用当前时间戳进行初始化。在所有随后的poll() 调用中,前一次调用的时间戳得到检查。如果自上次poll() 以来经过的毫秒数小于配置的两次轮询之间的间隔,我将线程发送到睡眠,因为配置的毫秒已经过去。
【讨论】: