Nuvom gives developers a task engine they can trust: clean APIs, predictable behavior, and production-ready task scheduling for Python.
Project description
nuvom
Nuvom gives developers a task engine they can trust: clean APIs, zero magic, and predictable behavior from local dev to production scale.
Why Nuvom?
Nuvom is a modern task engine for Python that focuses on clarity, reliability, and flexibility. It’s simple to start, easy to scale, and built for developers who value predictable, production-ready behavior.
Core Principles
- Developer-first design — clean APIs, no magic, no surprises
- Pluggable architecture — use SQLite, PostgreSQL, Redis, or your own backend
- Cross-platform — consistent behavior on Linux, macOS, and Windows
- Static task discovery — AST-powered for speed and safety
- Built-in scheduling — one-off, interval, or cron-style recurring jobs
- Predictable in production — fault-tolerant workers and durable job persistence
Installation
pip install nuvom
Quickstart
1. Define a Task
from nuvom.task import task
@task(retries=2, retry_delay_secs=5, timeout_secs=3, store_result=True)
def add(x, y):
return x + y
2. Discover Tasks
nuvom discover tasks
Generates .nuvom/manifest.json for faster worker startup.
3. Queue a Job
from tasks import add
job = add.delay(5, 7)
print(job.id)
4. Schedule a Job
from datetime import timedelta, datetime, timezone
from tasks import add
# Run at a specific time (2038 iykyk)
add.schedule(5, 7, at=datetime(2038, 1, 19, 3, 14, 7, tzinfo=timezone.utc))
# Run after 30 seconds
add.schedule(5, 7, in_=timedelta(seconds=30))
# Repeat every 5 minutes
add.schedule(2, 3, interval=300)
# Daily at midnight UTC
add.schedule(1, 2, cron="0 0 * * *")
Start the scheduler service:
nuvom runscheduler
Workers will automatically pick up due jobs.
5. Run the Worker
nuvom runworker
6. Inspect Results
nuvom inspect job <job_id>
Plugin Architecture
Nuvom is modular by design:
- Implement custom queue or result backends
- Extend scheduling with custom triggers
- Add metrics, persistence, or monitoring plugins
Configure via .nuvom_plugins.toml.
Documentation
Explore:
- Advanced task & scheduling options
- Plugin development guides
- CLI usage and environment setup
- Architecture and internals
License
Apache 2.0 - open, reliable, and production-ready.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file nuvom-0.11.2.tar.gz.
File metadata
- Download URL: nuvom-0.11.2.tar.gz
- Upload date:
- Size: 99.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: python-httpx/0.28.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6f4c6665d4e6954af2f46087dd4f25e7e7e0688fb21842f6a72e04b8eea7048b
|
|
| MD5 |
fcd2fb38dde4dc65aa5b7c1def7e1389
|
|
| BLAKE2b-256 |
415ba366b51706235051e1728372f97c75b4e1c8009a43761367e3f71781647c
|
File details
Details for the file nuvom-0.11.2-py3-none-any.whl.
File metadata
- Download URL: nuvom-0.11.2-py3-none-any.whl
- Upload date:
- Size: 95.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: python-httpx/0.28.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bb1c98a51b105fae782322b0a35dc0fe3684772b63d0541f0a59461067aaa7cd
|
|
| MD5 |
3d7ede9524d808dd84fec0a342c84dda
|
|
| BLAKE2b-256 |
07fb50d644ea784f2bc5dcfbec872344a483749a01d2749fa54c396c5559b0ab
|