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 MariaDB, réservation atomique (
UPDATE ... ORDER BY id LIMIT 1+ jeton). - Worker explicite lancé par l'application, jamais par la requête.
- Limite V1 : pas de reprise automatique d'une tâche restée
runningaprès un crash worker. - 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.0rc4
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.0rc4.tar.gz | 14.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| forge_mvc_jobs-1.0.0rc4-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 26.0 kB
Release files / forge_mvc_jobs-1.0.0rc4.tar.gz
| Download URL | forge_mvc_jobs-1.0.0rc4.tar.gz |
|---|---|
| Size | 14.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
bf4aaab7364c87dcfccb8241a7ec015f937b673225bdb41488817e92d7dab9aa
|
|
BLAKE2b-256 checksum How to use checksums |
169e24e13e819829f80dbdfe5e07c831401ad7929fc152070a2d39722dccaf95
|
| 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.0rc4-py3-none-any.whl
| Download URL | forge_mvc_jobs-1.0.0rc4-py3-none-any.whl |
|---|---|
| Size | 11.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
f5e087a550078fc06f527604a35541ae9ed9188be7db2a6ff222f03830bb3139
|
|
BLAKE2b-256 checksum How to use checksums |
f5182e7bedd720c59b6fd0e58b9a945d2c7d3d444359fa583474c617aad6d65a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.13
|