Warning This is a private project in early development. It has not been security audited and is strongly advised against running on public-facing servers. Use only in trusted, internal environments. You may also experience several bugs at this time due to the early development stage of this project.
A simple, powerful job queue for Python applications.
WhatsNext helps you manage and execute background jobs across multiple machines. Add jobs to a queue, and workers pick them up and run them.
Features
- Simple: Just a few lines of code to get started
- Reliable: Jobs are stored in PostgreSQL, so nothing gets lost
- Scalable: Run multiple workers on different machines
- Flexible: Works with any Python code, SLURM clusters, or Kubernetes
- Lightweight Client: No database, no caching, no background processes - the client is pure HTTP and runs in restricted environments
Quick Example
from whatsnext.api.client import Server, Job, Client, CLIFormatter
# Connect and get a project
server = Server("localhost", 8000)
project = server.get_project("my-experiments")
# Add a job to the queue
project.append_queue(Job(
name="experiment-1",
task="train-model",
parameters={"learning_rate": 0.01, "epochs": 100}
))
# Create a worker and process jobs
formatter = CLIFormatter(executable="python", script="train.py")
client = Client(
entity="ml-team",
name="gpu-worker-1",
project=project,
formatter=formatter
)
client.work()
Installation
# Install with uv (recommended)
uv add whatsnext[all]
# Or with pip
pip install whatsnext[all]
Requirements
- Python 3.10+
- PostgreSQL 14+
Running the Server
- Create a
.envfile with your database configuration:
database_hostname=localhost
database_port=5432
database_user=postgres
database_password=postgres
database_name=whatsnext
- Start the server:
uvicorn whatsnext.api.server.main:app --reload
- Visit http://localhost:8000/docs for interactive API documentation.
Documentation
Full documentation is available at the project docs site. Build locally with:
uv run mkdocs serve
Development
# Install dependencies
uv sync --all-extras --all-groups
# Run quality checks
uv run ruff format .
uv run ruff check . --fix
uv run ty check whatsnext
uv run pytest -v
License
AGPL-3.0 - See LICENSE for details.
Metadata
Release files for whatsnext 0.0.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| whatsnext-0.0.2.tar.gz | 80.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| whatsnext-0.0.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 165.6 kB
Release files / whatsnext-0.0.2.tar.gz
| Download URL | whatsnext-0.0.2.tar.gz |
|---|---|
| Size | 80.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
b343515362502da8fd4b858028c3ceac45cf096cc71d057990513d81b55d20a4
|
|
BLAKE2b-256 checksum How to use checksums |
62e8900f6cfcff9ee8b5c3111a8307a84053c21086dde10636b2ca33b8e33f13
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.9.18 {"installer":{"name":"uv","version":"0.9.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / whatsnext-0.0.2-py3-none-any.whl
| Download URL | whatsnext-0.0.2-py3-none-any.whl |
|---|---|
| Size | 85.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
b3ee659c0f6b1f22df14e11e629cf34871f1ad383dfebe0847670593d2664a08
|
|
BLAKE2b-256 checksum How to use checksums |
a8fdecd383e8c18c824fd8ec74d9f5be05b8cafc261c16dce986c30e80d2704d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.9.18 {"installer":{"name":"uv","version":"0.9.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|