From fb579e5fbc9878ef4125e99783eddf8b3c1595a2 Mon Sep 17 00:00:00 2001 From: Daniel Dolezal Date: Fri, 3 Apr 2026 21:23:18 +0200 Subject: [PATCH] add customisable timeout buffer with env variable --- snakes/BestBattleSnake.py | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/snakes/BestBattleSnake.py b/snakes/BestBattleSnake.py index 1f615d8..cf26310 100644 --- a/snakes/BestBattleSnake.py +++ b/snakes/BestBattleSnake.py @@ -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()