Capabilities at a glance
Everything flexiq already does, in one place — with a link to the deep-dive guide for each.
Everything flexiq already does, in one place — with a link to the deep-dive guide for each.
flexiq ships a broad feature set out of the box. If you're evaluating it — or suspect a capability is missing — scan this page first. Every card links to the guide that documents it.
These are the capabilities most often assumed absent. They aren't.
| You might assume… | Reality |
|---|---|
| No canvas / workflows — no chain, group, or chord | chain / group / chord are exported from the top-level package, backed by a full workflow DSL. |
| No Flower-like dashboard | flexiq dashboard --app myapp:queue serves a built-in monitoring UI. |
| No retry backoff or per-exception retries | max_retries, retry_backoff, retry_on, dont_retry_on are arguments on every task. |
| No soft timeouts | current_job.check_timeout() gives cooperative soft timeouts. |
| GIL bottleneck with no escape hatch | --pool prefork runs child processes with independent GILs for true CPU parallelism. |
# Reliability — backoff + per-exception retry rules
@queue.task(max_retries=5, retry_backoff=2.0, retry_on=[TimeoutError])
def fetch_url(url: str) -> str: ...
# Workflows — sequential pipeline (group / chord for fan-out / fan-in)
chain(fetch.s(url), parse.s(), store.s()).apply()
# Scheduling — priority + rate limit
@queue.task(priority=9, rate_limit="100/m")
def notify(user_id: int) -> None: ...flexiq worker --pool prefork --app tasks:queue # CPU-bound: true parallelism
flexiq dashboard --app tasks:queue # Flower-style monitoring UI