Skip to content

Commit c663bed

Browse files
committed
fix AdaptiveBuilder
1 parent 6b1494e commit c663bed

File tree

1 file changed

+14
-8
lines changed

1 file changed

+14
-8
lines changed

src/Builders/Traits/AdaptiveTimerMethod.php

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -212,16 +212,22 @@ public function adaptiveTimerCreate(Closure $func, mixed ...$args): string
212212
$setTimer = false;
213213
// 正反馈
214214
if ($result) {
215-
// 归零
216-
self::$isMaxTimerInterval = false;
217-
// 执行时长+消息等待时长
218-
$processTimer = self::getMilliTime() - $lastMessageMilliTimestamp;
219-
// 如果processTimer小于当前定时器间隔,则重置时间间隔为processTimer,否则保持当前定时器间隔
220-
if ($processTimer < $this->getTimerInterval()) {
215+
// 执行时长
216+
$processTimer = (self::getLastMessageMilliTimestamp() - $nowMilliTimestamp);
217+
// 如果processTimer<=当前定时器间隔,则定时器初始化,否则保持当前定时器状态
218+
if ($processTimer <= $this->getTimerInterval()) {
219+
// 归零
220+
self::$isMaxTimerInterval = ($processTimer >= $this->getMaxTimerInterval());
221221
// 重新设置定时器
222222
$setTimer = true;
223-
// 定时器设置
224-
$this->setTimerInterval(min($processTimer, $this->getMaxTimerInterval()));
223+
// 定时器间隔初始化
224+
$this->setTimerInterval(
225+
max(
226+
$this->getTimerInitialInterval(), min(
227+
$processTimer, $this->getMaxTimerInterval()
228+
)
229+
)
230+
);
225231
}
226232
}
227233
// 负反馈

0 commit comments

Comments
 (0)