feat: production readiness — distributed locking, async workers, and docs#23
Merged
pratyush618 merged 4 commits intomasterfrom Mar 11, 2026
Merged
feat: production readiness — distributed locking, async workers, and docs#23pratyush618 merged 4 commits intomasterfrom
pratyush618 merged 4 commits intomasterfrom
Conversation
…d macros - Distributed locks with per-backend acquire/release/extend/reap and execution claims for exactly-once job processing - WorkerDispatcher trait in core, AsyncWorkerPool in python bindings with spawn_blocking + GIL management - Split scheduler into modules (poller, result_handler, maintenance) - Split py_queue into modules (inspection, worker) - Extract shared SQLite/Postgres logic into diesel_common/ macros to eliminate duplication across backends - Add filtered job listing, per-queue stats, job archival, queue pause/resume, health checks, and Prometheus metrics endpoints - Python-side: health module, locks module, dashboard enhancements
- Add v0.4.0 changelog section covering distributed locking, async workers, queue pause/resume, archival, circuit breakers, serializers, and more - Add missing decorator options to tasks guide (retry_delays, soft_timeout, circuit_breaker, middleware, expires) with examples - Add drain_timeout and worker tags/specialization to workers guide - Add timezone support section to scheduling guide - Add MsgPackSerializer and EncryptedSerializer to serializers guide - Major update to api/queue.md: new constructor params, expanded decorator params, and new method sections (locking, workers, circuit breakers, logs, replay, archival, queue management, events/webhooks) - Add distributed locking guide (docs/guide/locking.md) - Add locking page to nav, reorder nav by learning progression - Remove navigation.sections/expand for collapsible sidebar dropdowns - Hide "Made with Zensical" footer via CSS
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
queue.lock()/queue.alock()) with auto-extend, acquisition timeout, and cross-process support via DB-backed locksAsyncWorkerPoolwithspawn_blocking,WorkerDispatchertrait intaskito-core)diesel_common/shared macro module eliminating SQLite/Postgres duplicationWhat's in this PR
Rust (taskito-core + taskito-python)
WorkerDispatchertrait for async worker dispatchAsyncWorkerPoolwith GIL-safespawn_blockingacquire_lock/release_lock/extend_lock/get_lock_infostorage methodsimpl_diesel_lock_ops!macro shared across SQLite and Postgres backendsLockNotAcquirederror variantPython
queue.lock()sync context manager with auto-extend background threadawait queue.alock()async context managerQueueLockMixinconsolidating lock operationsDocs
docs/changelog.md— v0.4.0 sectiondocs/guide/tasks.md—retry_delays,soft_timeout,circuit_breaker,middleware,expiresdocs/guide/workers.md—drain_timeout, workertagsdocs/guide/scheduling.md—timezoneon@queue.periodic()docs/guide/serializers.md—MsgPackSerializer,EncryptedSerializerdocs/api/queue.md— full rewrite with all new methods and paramsdocs/guide/locking.md— new dedicated locking guidezensical.toml— collapsible sidebar nav, learning-order subsections, removed footer attribution