From cc323079212d144bc3686f16158afd6c67101282 Mon Sep 17 00:00:00 2001 From: h Date: Sat, 29 Aug 2026 22:15:15 +0200 Subject: [PATCH] feat(scheduler): job dedupe flag for webhooks that must not collapse --- src/beaver_gateway/core/scheduler.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/beaver_gateway/core/scheduler.py b/src/beaver_gateway/core/scheduler.py index 4a23765..dcb1075 100644 --- a/src/beaver_gateway/core/scheduler.py +++ b/src/beaver_gateway/core/scheduler.py @@ -58,6 +58,7 @@ class Job: webhook: bool = False events: tuple[str, ...] = () critical: bool = True + dedupe: bool = True @property def entrypoint(self) -> str: @@ -297,8 +298,8 @@ class Scheduler: ids = await self._queries.enqueue( job.entrypoint, _encode({**payload, "trigger": "webhook"}), - dedupe_key=f"hook:{name}", - on_conflict="skip", + dedupe_key=f"hook:{name}" if job.dedupe else None, + on_conflict="skip" if job.dedupe else "raise", ) return int(ids[0]) if ids and ids[0] is not None else None