Bonjour tout le monde,

J'ai actuellement un petit souci de gestion de threads sous Zope3 que je
ne parviens pas à résoudre ; je vous explique...

Je dois lancer des opérations longues voire très longues sur un serveur
Zope3 (release 3.3.1 pour être exact), pour lesquelles l'utilisateur ne
saurait attendre la fin du traitement ; il s'agit en l'occurrence de
conversion de vidéos en Flash avec FFMPEG.
Ce que j'aimerais faire consiste donc, dans l'ordre :
 - à la fin du téléchargement, intégrer le nouveau fichier dans une
liste de fichiers à convertir et rendre la main immédiatement à
l'utilisateur
 - régulièrement, vérifier via un autre tâche (héritée de
twisted.internet.task.LoopingCall) s'il y a des fichiers en attente, et
dans ce cas les convertir.
 - à la fin de la conversion, mettre à jour différentes métadonnées
associées au fichier converti et supprimer le fichier original.

Ce processus en lui même ne pose pas de problème ; là où ça coince c'est
que pendant tout le processus de conversion, le serveur ne répond pas
aux requêtes. Gênant, non ?

Je suis donc preneur de toute idée, sachant que mon code est structuré
un peu comme ça :
 - class ConversionManager(tâche principale) : connectée à la base via
ZEO ; toutes les 60 secondes, il extrait la liste des fichiers à
convertir ; pour chaque fichier, teste s'il existe un utilitaire de
conversion adapté au contentType du fichier, et si oui demande la
conversion ; cette conversion est lancée via un thread
"ConversionManagerThread" (en mode setDaemon(True))
 - class ConversionManagerThread(hérite de Thread) : prend en paramètre
le fichier à convertir et l'utilitaire de conversion à utiliser, et
demande le lancement de l'utilitaire ; à la fin de la conversion, met à
jour les métadonnées du fichier si tout s'est bien passé et supprime le
fichier original
 - utilitaire de conversion : lance la commande FFMPEG avec ses
paramètres via os.spawnlp, en mode os.P_WAIT ; renvoie à la fin de la
conversion différentes informations liées au résultat de l'opération.

Merci d'avance,

  Thierry Florac
-- 
  Chef de projet intranet/internet
  Office National des Forêts - Département Informatique
  2, Avenue de Saint-Mandé
  75570 PARIS Cedex 12
  Mél : [EMAIL PROTECTED]
  Tél. : +33 01.40.19.59.64
  Fax. : +33 01.40.19.59.85

_______________________________________________
zope3-french-user mailing list
zope3-french-user@lists.afpy.org
http://lists.afpy.org/mailman/listinfo/zope3-french-user

Répondre à