funboost-advanced-retry

Configure retry, exponential backoff, dead-letter queues, and circuit breakers for funboost consumers.

892|166|Updated Dec 25, 2021
One-click install
npx skills add https://github.com/ydf0509/funboost --skill funboost-advanced-retry-ydf0509
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: funboost-advanced-retry
Source: https://github.com/ydf0509/funboost/tree/main/.agents/skills/funboost-advanced-retry
Command: npx skills add https://github.com/ydf0509/funboost --skill funboost-advanced-retry-ydf0509

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires funboost.

What problem does it solve? Distributed task consumers fail on transient errors like network timeouts and API rate limits, and hand-written retry loops are error-prone. This Skill shows how to declare retry, backoff, dead-letter, circuit breaker, and deduplication behavior through funboost BoosterParams instead of manual try/except logic. ## Core Features & Use Cases - Declarative Retry & Exponential Backoff: Configure max_retry_times, is_using_advanced_retry, and advanced_retry_config (sleep vs requeue mode, multiplier, jitter) for controlled re-execution. - Dead-Letter Queue Routing: Push exhausted tasks to a {queue_name}_dlx queue, or raise ExceptionForRequeue / ExceptionForPushToDlxqueue to control message flow explicitly. - Circuit Breaker & Deduplication: Use CircuitBreakerConsumerMixin to halt consumption after consecutive failures, and do_task_filtering to skip duplicate tasks via Redis. - Use Case: A payment-processing consumer retries failed charges 5 times with exponential backoff, times out after 60 seconds, deduplicates identical orders, and routes permanently failed messages to a dead-letter queue for later inspection. ## Quick Start Ask the AI to write a funboost consumer with exponential backoff retry, a dead-letter queue, and task deduplication using BoosterParams.

Frequently Asked Questions about funboost-advanced-retry

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I configure retry with exponential backoff in funboost?▼

Set max_retry_times and is_using_advanced_retry=True in BoosterParams, then tune advanced_retry_config with retry_base_interval, retry_multiplier, retry_max_interval, and retry_jitter. The default backoff is 1s, 2s, 4s, 8s capped at 60 seconds.

How does the funboost dead-letter queue work?▼

Set is_push_to_dlx_queue_when_retry_max_times=True and messages that exhaust all retries are pushed to a queue named {queue_name}_dlx. You can also raise ExceptionForPushToDlxqueue inside the consumer to send a message to the DLX immediately.

What is the difference between sleep and requeue retry modes in funboost?▼

Sleep mode blocks the current thread until the retry interval elapses, while requeue mode republishes the message with a countdown delay and frees the thread for other messages. Requeue suits high-concurrency or long-backoff scenarios.

Does funboost task deduplication require Redis?▼

Yes, do_task_filtering=True depends on a configured Redis instance. Once enabled, tasks with identical arguments that have completed a consumption cycle are skipped when published again.

Why is my funboost consumer retrying immediately without any delay?▼

By default is_using_advanced_retry is False, so failed tasks retry immediately in the same thread with no wait interval. Enable is_using_advanced_retry=True to activate exponential backoff between attempts.

How do I add a circuit breaker to a funboost consumer?▼

Set consumer_override_cls to CircuitBreakerConsumerMixin from funboost.contrib and pass circuit_breaker_options in user_options with failure_threshold and recovery_timeout. After consecutive failures the consumer blocks until the recovery window opens.