我正在使用Kafka Streams处理来自事件的一些输入数据,并且我想对该数据执行各种布尔返回函数。主要限制是每个处理器的运行时间不能超过自定义参数execution_timeout
定义的时间。如果执行时间超过该阈值,则将返回默认值(真或假,取决于每个处理器)。
我经历了一些问题,甚至发现了一个类似的问题here;但就我而言,我没有使用任何map
/ foreach
函数。相反,我选择了Kafka的Processor API,因为我需要在每个处理器内部执行任意代码。
在寻找解决方案时,我偶然发现了两个常数
StreamsConfig.COMMIT_INTERVAL_MS_CONFIG
(commit.interval.ms
)StreamsConfig.POLL_MS_CONFIG
(poll.ms
)但意识到它们并非旨在限制process
方法的执行时间。
Kafka Streams中是否有一个临时机制来解决此类问题?如果可能的话,我想知道是否有不涉及标准Java线程的解决方案(例如,实例化一个带有Futures的ThreadPool对象,并在一段时间后捕获InterruptedException)。