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.2.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.2-py3-none-any.whl (95.7 kB view details)

Uploaded Python 3

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

Hashes for nuvom-0.11.2.tar.gz
Algorithm Hash digest
SHA256 6f4c6665d4e6954af2f46087dd4f25e7e7e0688fb21842f6a72e04b8eea7048b
MD5 fcd2fb38dde4dc65aa5b7c1def7e1389
BLAKE2b-256 415ba366b51706235051e1728372f97c75b4e1c8009a43761367e3f71781647c

See more details on using hashes here.

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

Hashes for nuvom-0.11.2-py3-none-any.whl
Algorithm Hash digest
SHA256 bb1c98a51b105fae782322b0a35dc0fe3684772b63d0541f0a59461067aaa7cd
MD5 3d7ede9524d808dd84fec0a342c84dda
BLAKE2b-256 07fb50d644ea784f2bc5dcfbec872344a483749a01d2749fa54c396c5559b0ab

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