我试图模仿定期令牌刷新。我们的前端有javascript代码,可以定期检查是否需要进行令牌刷新,如果是,则发出刷新令牌的调用。只要有人使用该应用程序,每隔几分钟就会运行一次。
我们的应用程序的典型用户将使应用程序保持打开状态,而不会在令牌生命周期内执行任何操作。因此,我无法在每次调用时检查并执行令牌刷新,而无需调整脚本以模仿实际生活使用情况(因为调用需要更频繁地发生)。
任何想法是否或如何可能?
答案 0 :(得分:0)
好吧,我能提出的最好的解决方案主要是创建我自己的“Pause”类,它将长时间暂停分解为小暂停,并在每次检查之间查看令牌是否需要刷新。看起来大致如下:
//new RefreshADToken().create() creates a ChainBuilder that refreshes the token if it's necessary
object PauseHelpers {
val tooBigOfPauseThreshold = 150 //300 seconds = 5 minutes, so anything over 150 is too big
def adPause(duration: Int): ChainBuilder = {
doIfOrElse(duration > tooBigOfPauseThreshold) {
val iterations = duration / tooBigOfPauseThreshold
repeat(iterations, "pause_counter") {
pause(tooBigOfPauseThreshold)
.exec(new RefreshADToken().create())
}.pause(duration % tooBigOfPauseThreshold).exec(new RefreshADToken().create())
} {
pause(duration).exec(new RefreshADToken().create())
}
}
}
//... then
import orhub.modules.actions._
class POC extends Simulation {
//some stuff
var scn = scenario("poc")
.feed(hospitalUsersFeeder)
.exec(session => {
session.set("env", environment)
})
.exec(new ADPause(120 * 60).create())