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.0.tar.gz (99.7 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.0-py3-none-any.whl (95.6 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for nuvom-0.11.0.tar.gz
Algorithm Hash digest
SHA256 d4d2c2eef840a8c7b1c3e1a1e916281ec403ceeb715c12ddf5e71d53aa4789cb
MD5 6282b4258085fc44ce7bb9c1463bf5ef
BLAKE2b-256 5c6a42bc29b63f4d822c163de5ad61328a5cb6ec0be0a1b4cba3ad4bb0abd031

See more details on using hashes here.

File details

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

File metadata

  • Download URL: nuvom-0.11.0-py3-none-any.whl
  • Upload date:
  • Size: 95.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: python-httpx/0.28.1

File hashes

Hashes for nuvom-0.11.0-py3-none-any.whl
Algorithm Hash digest
SHA256 8ed275920e62aed020c87a62bb6acbb655820249d25bf9bd814ffb08574d1bb9
MD5 4f3c7869f0988586ed703a09b035a00f
BLAKE2b-256 7fcdb01445ad86d9fa649721e89fa381f8f0c92de4fd07057a9e8c8a8a019921

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