package Ġn ft . free port . processor Ċ Ċ import Ġcom . github . ben man es . caffe ine . cache . C affe ine Ċ import Ġjava . time . Duration Ċ import Ġjava . time . Instant Ċ Ċ object ĠMis sed N ft Time Calculation Service Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġmax TimeTo Wait : ĠDuration Ġ= ĠDuration . of Minutes ( 2 ) ĊĊĠĠĠ Ġprivate Ġval Ġfirst Error Time By N ft Id Ġ= ĊĠĠĠĠĠĠĠ ĠC affe ine . newBuilder (). expire After Access ( max TimeTo Wait . plus Minutes ( 1 )). build < CacheKey , ĠInstant >() ĊĊĠĠĠ Ġprivate Ġdata Ġclass ĠCache Key ( val Ġprocessor Id : ĠString , Ġval Ġn ft Id : ĠString ) ĊĊĠĠĠ Ġfun Ġis Time Over ( nft Id : ĠString , Ġprocessor Id : ĠString ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġfirst Error Time Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfirst Error Time By N ft Id . get ( CacheKey ( nft Id Ġ= Ġn ft Id , Ġprocessor Id Ġ= Ġprocessor Id )) Ġ{ ĠInstant . now () Ġ} !! ĊĊĠĠĠĠĠĠĠ Ġreturn Ġfirst Error Time . plus ( max TimeTo Wait ). is Before ( Instant . now ()) ĊĠĠĠ Ġ} Ċ Ċ }