Skip to main content

Forge Jobs — file de tâches de fond opt-in adossée à MariaDB : enqueue depuis une requête, worker explicite (drain/run_worker), sans broker ni async.

Project description

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 running après un crash worker.
  • Hors périmètre : ordonnancement cron, priorités fines, broker distribué.

Documentation complète : https://forgemvc.com/docs/forge/.

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

forge_mvc_jobs-1.0.0rc2.tar.gz (13.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

forge_mvc_jobs-1.0.0rc2-py3-none-any.whl (11.3 kB view details)

Uploaded Python 3

File details

Details for the file forge_mvc_jobs-1.0.0rc2.tar.gz.

File metadata

  • Download URL: forge_mvc_jobs-1.0.0rc2.tar.gz
  • Upload date:
  • Size: 13.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.13

File hashes

Hashes for forge_mvc_jobs-1.0.0rc2.tar.gz
Algorithm Hash digest
SHA256 eefd35a54d3f75458ed83fdde61d8f85a6888dc0886c2007fe9cc3ebfa925902
MD5 5136ba94a946bc9df313aa7ef6bdae41
BLAKE2b-256 0539d9cd928110ca736dde22c79c81d84f0ff38a863eb11c4bd12550b1043186

See more details on using hashes here.

File details

Details for the file forge_mvc_jobs-1.0.0rc2-py3-none-any.whl.

File metadata

File hashes

Hashes for forge_mvc_jobs-1.0.0rc2-py3-none-any.whl
Algorithm Hash digest
SHA256 82ab60836fda789e766fd973974830668aa9ec7d0175c3f40c629877321bac74
MD5 05223db34e4e1ed387d8c02f8db1fc5b
BLAKE2b-256 cef8a46370540674460af5fda97e344667a6c60dbccf7e7f0e83cecd08bbac39

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