Modèle d'exécution et déploiement
Environnement de production
LogiDAV tourne sur un serveur dédié avec :
- PHP 7.3 (CLI et FPM)
- MySQL / MariaDB
- RabbitMQ pour le transport de files d'attente
- Cron système pour l'ordonnancement des commandes Symfony
Exécution des cronjobs
Le crontab système contient 164 entrées qui exécutent des commandes Symfony selon des plannings variés :
# Exemple d'entrées crontab
*/10 * * * * cd /path/to/logidav && php bin/console menzzo:v2:sales >> /var/log/logidav/sales.log 2>&1
*/30 * * * * cd /path/to/logidav && php bin/console menzzo:v2:sales:update >> /var/log/logidav/sales-update.log 2>&1
0 */2 * * * cd /path/to/logidav && php bin/console menzzo:v2:products >> /var/log/logidav/products.log 2>&1
Prévention de la concurrence
Les commandes critiques utilisent LockableTrait pour empêcher l'exécution concurrente du même cronjob.
Gestion des erreurs
- Les erreurs sont loguées dans des fichiers dédiés
- Les deadlocks et erreurs EntityManager sont gérés avec downgrade en warning
- Les alertes système sont envoyées pour les échecs critiques
Processeur de files d'attente
Le processeur doit tourner en continu en production :
php bin/console meduse:queue:processor --action=runQueues
Il est recommandé de le superviser avec un processus manager (systemd, supervisor).
Mise à jour du schéma de base de données
Ce projet n'utilise pas les migrations Doctrine :
# Vérifier les changements
php bin/console doctrine:schema:update --dump-sql
# Appliquer après revue
php bin/console doctrine:schema:update --force
Documentation du site
Le site de documentation (Docusaurus) est déployé sur Cloudflare Pages :
- Répertoire source :
website/ - Build :
npm run build - Output :
website/build/ - URL :
https://docs-logidav.pages.dev
Voir le guide de déploiement pour les détails.