Skip to content

feat: add fail-over tasks and indexed task enumeration#166

Merged
Graeme22 merged 1 commit into
masterfrom
v6.5
May 22, 2026
Merged

feat: add fail-over tasks and indexed task enumeration#166
Graeme22 merged 1 commit into
masterfrom
v6.5

Conversation

@Graeme22

Copy link
Copy Markdown
Member

Description

  • Task.otherwise()/^ for fallback execution when a parent fails; on parent success, fallback short-circuits with the parent's result via a transient signal key
  • Replace SCAN-based _get_running_tasks/_get_completed_tasks with a running set and an expiry-scored sorted set; lazy cleanup in the health-check loop. Removes O(keyspace) cost in deployments with millions of keys
  • New context API: Worker.context, RegisteredTask.context, RegisteredMiddleware.context. Deprecate WorkerDepends and TaskDepends (slated for removal in v7.0.0)

Related issue(s)

Fixes #163

Pre-merge checklist

  • Code formatted correctly (check with make lint)
  • Passing tests locally (check with make test)
  • New tests added (if applicable)
  • Docs updated (if applicable)

- Task.otherwise() / ^ for fallback execution when a parent
  fails; on parent success, fallback short-circuits with the
  parent's result via a transient signal key (decoupled from
  result TTL so ttl=0 still works)
- Replace SCAN-based _get_running_tasks/_get_completed_tasks
  with a running set and an expiry-scored sorted set; lazy
  cleanup in the health-check loop. Removes O(keyspace) cost
  in deployments with millions of keys
- New context API: Worker.context, RegisteredTask.context,
  RegisteredMiddleware.context. Deprecate WorkerDepends and
  TaskDepends (slated for removal in v7.0.0)
@Graeme22
Graeme22 merged commit fdf3a8c into master May 22, 2026
6 checks passed
@Graeme22
Graeme22 deleted the v6.5 branch May 22, 2026 22:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

UI /queue and /workers hang on Redis instances with many unrelated keys (SCAN with no bound)

1 participant