我想在mapwithstate中编写一个函数,该函数启用了超时...
def trackStateFunc(batchTime: Time,
key: String, value: Option[Int],
state: State[Long]): Option[(String, Long)] = {
if (state.isTimingOut()) {
//write state to database
return None
} else if (state.exists) {
var c = state.get()
if (value.getOrElse(null) != null) {
//update c
c = c + value
state.update(c)
}
Some(key,c)
} else {
Some(key,value.getOrElse(0).toLong)
}
}
我想知道一个状态是否超时然后它可能不会退出,我上面的代码不会抛出任何异常..
在哪种情况下,值Option[int]
不存在..如果超时?
答案 0 :(得分:1)
在这种情况下,值
Option[int]
不存在..如果它是定时的 出?
是的,一旦value
超时,mapWithState
的{{1}}参数将为None
。发生这种情况时,State[S]
也会设置为state.isTimingOut()
。
true
的更多特征感兴趣,那么I've written就此问题确切。