feat(scheduler): job dedupe flag for webhooks that must not collapse
This commit is contained in:
@@ -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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user