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.0rc5
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.0rc5.tar.gz | 21.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| forge_mvc_jobs-1.0.0rc5-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 36.7 kB
Release files / forge_mvc_jobs-1.0.0rc5.tar.gz
| Download URL | forge_mvc_jobs-1.0.0rc5.tar.gz |
|---|---|
| Size | 21.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
8fcd7267d535c02674b4eaa283b218f02c3b1bf915a21b9356945cc0996427e5
|
|
BLAKE2b-256 checksum How to use checksums |
bacb58182535a67a3c968d48fda76647742580fa1059242271ee2ecad82f51b1
|
| 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.0rc5-py3-none-any.whl
| Download URL | forge_mvc_jobs-1.0.0rc5-py3-none-any.whl |
|---|---|
| Size | 15.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
9e9bbf644c44a4d96f5ec5d58e5e3329ed09abab8135dbc27bb9965f93f1130a
|
|
BLAKE2b-256 checksum How to use checksums |
ef365156be8d041762b64af7217880ca189b09490b105005024c29b9e83f1f1b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.13
|