refactor: enhance webhook delivery queue processing with configurable blocking

This commit is contained in:
Abhimanyu Saharan
2026-02-15 12:48:08 +05:30
parent 731fb9edac
commit e28496245b
6 changed files with 143 additions and 9 deletions

View File

@@ -92,10 +92,19 @@ def enqueue_webhook_delivery(payload: QueuedInboundDelivery) -> bool:
return False
def dequeue_webhook_delivery() -> QueuedInboundDelivery | None:
def dequeue_webhook_delivery(
*,
block: bool = False,
block_timeout: float = 0,
) -> QueuedInboundDelivery | None:
"""Pop one queued webhook delivery payload."""
try:
task = dequeue_task(settings.rq_queue_name, redis_url=settings.rq_redis_url)
task = dequeue_task(
settings.rq_queue_name,
redis_url=settings.rq_redis_url,
block=block,
block_timeout=block_timeout,
)
if task is None:
return None
return _payload_from_task(task)