add customisable timeout buffer with env variable
This commit is contained in:
@@ -37,6 +37,7 @@ class BestBattleSnake(TemplateSnake):
|
||||
self.last_game_id = None
|
||||
self.previous_hazards = set()
|
||||
self.duel_style = self._get_duel_style()
|
||||
self.timeout_buffer_ms = self._get_timeout_buffer_ms()
|
||||
|
||||
def _get_duel_style(self) -> str:
|
||||
"""Resolve duel tuning style from `BATTLE_SNAKE_DUEL_STYLE` or `DUEL_STYLE`."""
|
||||
@@ -69,6 +70,14 @@ class BestBattleSnake(TemplateSnake):
|
||||
"food_bias": 1.00,
|
||||
}
|
||||
|
||||
def _get_timeout_buffer_ms(self) -> int:
|
||||
"""Read response-time safety buffer from `SNAKE_TIMEOUT_BUFFER_MS`."""
|
||||
raw_value = os.getenv("SNAKE_TIMEOUT_BUFFER_MS", "120")
|
||||
try:
|
||||
return max(25, int(raw_value))
|
||||
except ValueError:
|
||||
return 120
|
||||
|
||||
def choose_move(self, game_data:dict) -> str:
|
||||
"""Pick the next move from a Battlesnake move request.
|
||||
|
||||
@@ -77,8 +86,9 @@ class BestBattleSnake(TemplateSnake):
|
||||
self.game_board = game_data
|
||||
self.calculations = []
|
||||
self.duel_style = self._get_duel_style()
|
||||
self.timeout_buffer_ms = self._get_timeout_buffer_ms()
|
||||
timeout_ms = (game_data.get_timeout() if hasattr(game_data, "get_timeout") else 500)
|
||||
deadline = perf_counter() + (max(50, int(timeout_ms) - 120) / 1000.0)
|
||||
deadline = perf_counter() + (max(50, int(timeout_ms) - self.timeout_buffer_ms) / 1000.0)
|
||||
|
||||
game_id = getattr(game_data, "id", None)
|
||||
turn = game_data.get_turn()
|
||||
|
||||
Reference in New Issue
Block a user