La base de donnée de test ne supporte pas les Threads

L'auteur de ce sujet a trouvé une solution à son problème.
Auteur du sujet

Bonjour,

Suite à la discution sur l'indexation de la zep-12, on en avait conclu que ça serait bien de différé l'enregistrement des données pour la recherche et la publication.

J'était partis naturellement, sur l'idée de plusieurs Thread. Sauf que la base de donnée de test ("sqlite", in-memory) ne supporte pas les thread, c'est un souci connu de django et sqlite. Le code de Django à été adapté pour pouvoir faire fonctionner les threads et les bases de données de test mais seulement dans sa version 1.8.

Du coup, deux solutions:

  • Y'a la solution proposé par artagis:

    asynchrone peut vouloir dire "on lance un tachecron" par exemple. Du coup la génération de l'index n'est pas synchrone à la publication.

  • ou avant de lancer le thread, on teste si on en mode "test" et on lance la méthode sans le thread et on corrige ça quand Django 1.8 arrive.

Vous avez une idée d'une autre solution alternative ?

Édité par anonyme

+1 -0

Je pense que la première est mieux car avec la deuxième est plus risquée (il y a plus de probabilité d'avoir un problème en production mais pas en local) !

Médicament flemmard aux pul(p)sions imprécises. “Don’t wait for the perfect moment. Take the moment and make it perfect.”

+0 -0

Moi, j'aurais dit oui si on avais eu un Sentry fonctionnel: c'est déjà pas facile d'avoir des logs coté Django, alors des logs de chez cron, on est pas rendu :/

EDIT: je suis pas contre l'idée, mais j'aimerai savoir ce qui se passe de temps à autre, voir si on est dans le bon ou si on génère une erreur toute les heures, quoi.

Édité par pierre_24

Doctorant et assistant en chimie à l'Université de NamurEx-dev' pour ZdS (a aidé à réaliser la ZEP-12 !) • Carniste cis (y parait que c'est une injure)

+1 -0
Staff

Notons que munin peut tout à fait être trické pour trouver le nombre de message d'erreur. Ecrire un plugin qui compte le nombre d'erreur lancées par CRON dans syslog les 5 dernières minutes est très simple (même si ça reste un trick et de basse qualité et donc pas forcément souhaitable).

Notons d'ailleurs qu'il est tout à fait facile d'ajouter un fichier de log qui envoie les erreurs de génération pdf par email, mais on risque de tomber dans ce problème :

rendre heureux notre ami renard

Bref, faut vraiment que l'assoc s'achète un second serveur là !

+1 -0
Vous devez être connecté pour pouvoir poster un message.
Connexion

Pas encore inscrit ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte