Skip to main content

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.

status python license


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

👉 Documentation


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

nuvom-0.11.1.tar.gz (99.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

nuvom-0.11.1-py3-none-any.whl (95.7 kB view details)

Uploaded Python 3

File details

Details for the file nuvom-0.11.1.tar.gz.

File metadata

  • Download URL: nuvom-0.11.1.tar.gz
  • Upload date:
  • Size: 99.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: python-httpx/0.28.1

File hashes

Hashes for nuvom-0.11.1.tar.gz
Algorithm Hash digest
SHA256 c09a1c167f954230fb1f66049718e90f29d1b0e609aaf4adfa329b0e5a8c2ffd
MD5 29821ffd1eab863909602e9f717f0be1
BLAKE2b-256 e94b0b147c2b9c5a3ae565b00d385efbd8854a5210638add95268ea56d9eb73b

See more details on using hashes here.

File details

Details for the file nuvom-0.11.1-py3-none-any.whl.

File metadata

  • Download URL: nuvom-0.11.1-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

Hashes for nuvom-0.11.1-py3-none-any.whl
Algorithm Hash digest
SHA256 0e5e81d0a3c3f11e0af0e95afdf5a03cbfc0672c0c2b6afa7e06d815d8b9ec4d
MD5 8ba71dab4c7c5d36095c367c5fb0c464
BLAKE2b-256 9b4beded18475136a9e7bd05e48ff86c252eab5915eb23afe540215d0ff27ac7

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page