20.9 GB
673,093 files
Updated 3 months ago
Name
Size
templates
README.md3.08 kB
xet
__init__.py201 Bytes
xet
asgi.py226 Bytes
xet
celery.py466 Bytes
xet
requirements.txt139 Bytes
xet
settings.py3.66 kB
xet
urls.py420 Bytes
xet
wsgi.py226 Bytes
xet
README.md

Simulation Numérique Server

Plateforme Django pour exécuter des méthodes de simulation numérique avec traitement asynchrone via Celery et Redis.

Architecture

simulationserver/
├── simulations/          # App Django
│   ├── models.py        # Modèles (SimulationMethod, SimulationRun)
│   ├── tasks.py         # Tâches Celery
│   ├── views.py         # API REST
│   ├── views_views.py   # Vues HTML
│   └── templates/       # Templates
├── simulationserver/     # Configuration Django
│   ├── settings.py      # Settings + Celery config
│   ├── celery.py        # Configuration Celery
│   └── urls.py          # URLs
└── manage.py

Installation

pip install -r simulationserver/requirements.txt

Configuration

  1. Installer et démarrer Redis:
# Sur Debian/Ubuntu
sudo apt install redis-server
sudo systemctl start redis

# Ou avec Docker
docker run -d -p 6379:6379 redis:alpine

Démarrage

  1. Appliquer les migrations:
python manage.py migrate
  1. Initialiser les méthodes de simulation:
python manage.py init_simulation_methods
  1. Démarrer le serveur Django:
python manage.py runserver 0.0.0.0:8000
  1. Démarrer le worker Celery (dans un autre terminal):
cd /root/bookshop
celery -A simulationserver worker --loglevel=info

Utilisation

Interface Web

API REST

  • GET /api/methods/ - Liste des méthodes
  • GET /api/methods/{slug}/ - Détail d'une méthode
  • POST /api/runs/ - Créer et lancer une simulation
  • GET /api/runs/{id}/ - Détail d'une simulation
  • GET /api/runs/{id}/status/ - Statut d'une simulation
  • POST /api/runs/{id}/cancel/ - Annuler une simulation
  • GET /api/runs/recent/ - Simulations récentes

Modèles

SimulationMethod

Décrit une méthode de simulation:

  • name: Nom de la méthode
  • slug: Identifiant unique
  • description: Description courte
  • theory: Documentation/theorie
  • parameters_schema: Schema JSON des paramètres
  • default_parameters: Paramètres par défaut

SimulationRun

Une exécution de simulation:

  • method: Méthode utilisée
  • parameters: Paramètres de la simulation
  • status: PENDING, RUNNING, SUCCESS, FAILURE, CANCELLED
  • progress: Pourcentage de progression
  • logs: Logs d'exécution
  • result_data: Résultats JSON

Tâches Celery

Les simulations sont exécutées en arrière-plan via Celery:

  • Le worker lit les paramètres depuis la base
  • Exécute le calcul
  • Met à jour le statut et les résultats
  • Les pages web font du polling pour le suivi

Ajouter une nouvelle méthode

  1. Ajouter la fonction de simulation dans simulations/tasks.py
  2. Ajouter le mapping dans SIMULATION_METHODS
  3. Créer un SimulationMethod via l'admin ou init_simulation_methods
Total size
20.9 GB
Files
673,093
Last updated
Mar 19
Pre-warmed CDN
US EU US EU

Contributors