This release is a pre-release and may not be stable for production use.
forge-mvc-jobs
File de tâches de fond opt-in pour Forge : déporter un travail lourd hors de la requête HTTP (envoi d'emails en nombre, transcodage, import massif), via une file adossée à MariaDB et un worker explicite.
Pas de broker, pas de Celery ni de Redis, pas de runtime async : la file est une
simple table jobs, le serveur web reste synchrone (WSGI). On enfile une tâche
depuis un contrôleur, un process worker séparé la traite.
Installation
pip install --pre forge-mvc-jobs
En développement : pip install -e ./packages/forge-mvc-jobs.
Mise en place de la table
forge jobs:init # copie la migration dans mvc/migrations/
forge migration:apply # crée la table jobs
Côté web : enfiler
from forge_mvc_jobs import enqueue
# Dans un contrôleur : la requête répond tout de suite, le travail part en file.
enqueue("email.envoi", {"to": "eleve@exemple.fr", "sujet": "Bienvenue"})
Côté worker : traiter
from forge_mvc_jobs import run_worker
def envoyer_email(payload):
... # le vrai envoi
handlers = {"email.envoi": envoyer_email}
# Dans un script worker lancé séparément (pas dans le serveur web) :
run_worker(handlers)
drain(handlers) traite la file en une passe (utile en test ou en tâche
planifiée) ; run_worker(handlers) boucle. enqueue accepte queue,
max_attempts (reprise sur échec) et available_in (délai en secondes).
get_job(id) et pending_count() donnent de la visibilité.
Périmètre
- File en base, réservation atomique (candidate choisie, puis réservée sous garde
status='pending'). - Worker explicite lancé par l'application, jamais par la requête.
- Reprise après plantage d'un worker :
reclaim_stale()etforge jobs:reclaimrendent à la file les tâchesrunningdont le bail a expiré. - Hors périmètre : ordonnancement cron, priorités fines, broker distribué.
Documentation complète : https://forgemvc.com/docs/forge/.
Release files for forge-mvc-jobs 1.0.0rc9
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| forge_mvc_jobs-1.0.0rc9.tar.gz | 39.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| forge_mvc_jobs-1.0.0rc9-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 61.5 kB
Release files / forge_mvc_jobs-1.0.0rc9.tar.gz
| Download URL | forge_mvc_jobs-1.0.0rc9.tar.gz |
|---|---|
| Size | 39.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
1a45c86c4d71cc55494a5ad74a620399c7242475bd725b52a9e2a1b4d4cabb67
|
|
BLAKE2b-256 checksum How to use checksums |
f4a413780c3add6f0139e39f0ba969c16e3dee60db4283413bf0f5bd70edf050
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.13
|
Release files / forge_mvc_jobs-1.0.0rc9-py3-none-any.whl
| Download URL | forge_mvc_jobs-1.0.0rc9-py3-none-any.whl |
|---|---|
| Size | 22.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
707459018ef02c93fb48bbca175c137a9a2b59aed56778aca7190afe974d7e45
|
|
BLAKE2b-256 checksum How to use checksums |
d1e366422a342584c32f6c598deb6126bb498f467cd527d8b075f2d89f0e2e2e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.13
|