understanding-funboost-concepts

Explains funboost core concepts including BoosterParams, configuration files, and consumption models.

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

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Developers new to funboost often misapply Celery-style patterns, invent nonexistent BoosterParams fields, or misconfigure broker connections, leading to runtime errors and broken distributed task code. ## Core Features & Use Cases - Mental Model Building: Explains the zero-intrusion @boost decorator philosophy, the difference between direct calls and push-based distributed execution, and why consumers never auto-stop. - BoosterParams Reference: Categorizes the 50+ Pydantic configuration fields and corrects common hallucinated parameter names like timeout, max_retries, and workers. - Configuration & Context Guidance: Covers funboost_config.py loading via PYTHONPATH, push vs publish semantics, the fct thread-safe task context, and the five concurrency modes. - Use Case: Before writing a funboost consumer with Redis broker and RPC result retrieval, consult this Skill to set is_using_rpc_mode correctly, configure BrokerConnConfig, and avoid Celery-style bind=True patterns. ## Quick Start Explain how funboost BoosterParams, the funboost_config.py file, and the fct context object work before I write my first distributed task.

Frequently Asked Questions about understanding-funboost-concepts

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

FAQPage Schema
How do I configure a funboost task with BoosterParams?▼

Pass a BoosterParams instance to the @boost decorator with queue_name as the only required field. Set task-level options like concurrent_num, qps, max_retry_times, and function_timeout; broker connection details belong in funboost_config.py, not BoosterParams.

What is the difference between push and publish in funboost?▼

push accepts business arguments matching the function signature, while publish takes a dictionary plus TaskOptions for framework controls like task_id, countdown, and eta. Most scenarios only need push.

How does funboost load the funboost_config.py file?▼

Funboost imports funboost_config via sys.path order, checking the script directory first then the PYTHONPATH project root. If missing, it auto-generates a template at sys.path[1], so set PYTHONPATH to your project root before running.

How do I access task context like task_id in funboost?▼

Import fct from funboost and access fct.task_id, fct.queue_name, or fct.full_msg inside the consumer function. The fct object is thread-safe and only populated during consumption, unlike Celery's bind=True self pattern.

Why does my funboost consumer never stop running?▼

Consumers run an infinite message-pull loop by design since funboost targets long-running services. During testing, terminate explicitly with a timeout or os._exit(66) rather than expecting automatic shutdown.

Which concurrency mode should I use in funboost?▼

Use THREADING for IO-bound tasks, GEVENT or EVENTLET for high-concurrency network work, ASYNC for native async def functions, and SINGLE_THREAD for strict sequential execution. Set it via concurrent_mode in BoosterParams.