Bienvenue sur IndexError.

Ici vous pouvez poser des questions sur Python et le Framework Django.

Consultez la FAQ pour améliorer vos chances d'avoir des réponses à vos questions.

[Twisted]: La boucle du reacteur twisted dans un programme synchrone est-elle bloquante?

+2 votes

Je suis entrain d'implémenter une API client pour s'interfacer avec un serveur Freeswitch via la lib eventsocket.

L'api est accessible via une interface web [apache mod_wsgi].

Est ce que quand on se connecte a l'api en mode asynchrone (thread + loop + wait), bloque quand même le thread de départ http?

Ils y en a qui disent le faite de spawner de l’asynchrone sur un event HTTP, En théorie, c’est bien, en pratique, c’est moche: ça consomme du thread apache? Est-ce vrai?

Plus précisément: qu'elle est l'impact de l’exécution d'un LRP (longrunnning process) par Twisted si ce dernier est spawner par un fork apache (mod_wsgi)?

demandé 27-Jan-2015 par akadi (324 points)
edité 28-Jan-2015 par akadi

1 Réponse

+1 vote
 
Meilleure réponse

Est ce que quand on se connecte a l'api en mode asynchrone (thread + loop + wait), bloque quand même le thread de départ http?

Tout opération d'IO dans un second thread ne bloque pas le thread de départ.

Ils y en a qui disent le faite de spawner de l’asynchrone sur un event HTTP, En théorie, c’est bien, en pratique, c’est moche: ça consomme du thread apache? Est-ce vrai?

Il va falloir que tu donnes plus d'infos sur ce que tu entends par "spawner de l’asynchrone" et "un event HTTP".

Plus précisément: qu'elle est l'impact de l’exécution d'un LRP (longrunnning process) par Twisted si ce dernier est spawner par un fork apache (mod_wsgi)?

WSGI est synchrone et est incompatible avec Twisted. Twisted peut, en revanche, hoster une app WSGI, mais ne devrait pas être servi avec mod_wsgi. Pour servir twisted derrière apache, il faut utiliser un ProxyPass. Dans ce cas, les deux processus sont séparés, et la gestion de ressources de twisted et de apache ne se mélangent jamais, ce qui évite tout problème.

répondu 28-Jan-2015 par Sam (5,000 points)
sélectionné 28-Jan-2015 par akadi

Si je mets des timeout sur les deferreds twisted, tout en servant twisted depuis apache mod_wsgi, est-ce que d'après toi ça minimise les dégâts?

...