Question

Le projet sur lequel je travaille en ce moment prend essentiellement dans une image et rend ensuite une vidéo en utilisant un mélangeur à partir de la ligne de commande. En ce moment je suis en utilisant Twisted pour traiter les demandes, mais il y a certainement quelque chose que je fais mal que il ne fonctionne pas comme je voudrais qu'il. Vous pouvez voir le jist du programme (je ôtons quoi que ce soit inutile).

Le mélangeur render se fait par fraie un sous-processus (je suis conscient Twisted peut processus de poignée ) avec un script python pour configurer le rendu et utiliser l'image fournie en tant que texture .

Le programme doit être capable de gérer autant de connexions que possible. Au moment où le sous-processus fait un rendu à la fois, mais idéalement, il vérifierait CPU / nombre de parallèle rend et ajuster le nombre à l'optimum. Chaque mesure est rendu à l'utilisateur donc une fois un utilisateur rendent terminé, ils devraient obtenir leur rendre retour (un fichier AVI).

Ma question est: est-elle gauchie le bon choix pour cela? Il y a-t-il des alternatives? Dans le cas contraire, est ma mise en œuvre du système défectueux? Je vous serais reconnaissant des idées ou des opinions à ce sujet!

Était-ce utile?

La solution

Is Twisted the right choice for this? -. Peut-être

Are there other options? - Oui.

If not, is my implementation of the system flawed? - Oui. Il me semble que votre appel subprocess bloque: p.wait()

Il est possible de faire ce qu'il semble que vous essayez de faire dans Twisted, mais vous êtes un très long de celui-ci.

Vous avez besoin d'une vitesse contrôlée, la file d'attente des tâches asynchrones avec une interface web.

Qu'est-ce que vous avez est une seule page sur un seul thread « site » qui ne renvoie pas html jusqu'à ce que le travail soumis est terminé.

Ceci est possible en tordu. Cependant, il est probablement plus facile à mettre en œuvre à l'aide django céleri +.

Django: http://www.djangoproject.com/
Céleri: http://celery.github.com/celery/getting-started/ introduction.html

Et un tutoriel pour un but similaire:
http://webcookies.org/blog/2009/09 / 10 / rabbitmq-céleri-et-django /

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top