Deferred
s sont un excellent moyen de faire un traitement asynchrone dans Twisted. Cependant, comme leur nom l'indique, ils sont utilisés pour des calculs différés, qui ne s'exécutent et ne se terminent qu'une fois, renvoyant les rappels une seule fois. Que faire si j'ai un calcul répété, comme si un bouton était cliqué? Y a-t-il un objet similaire à Deferred
qui peut déclencher à plusieurs reprises, en appelant tous les rappels qui lui sont attachés à chaque fois qu'il est déclenché?Twisted: différé qui se déclenche à plusieurs reprises?
Répondre
Je l'ai configuré pour l'instant. Pour mon cas d'utilisation limité, il fait ce que je veux.
class RepeatedDeferred:
def __init__(self):
self.callbacks = []
self.df = defer.Deferred()
def addCallback(self, callback):
self.callbacks.append(callback)
self.df.addCallback(callback)
def callback(self, res):
self.df.callback(res)
self.df = defer.Deferred()
for c in self.callbacks:
self.df.addCallback(c)
Quelqu'un me fait savoir si c'est terrible.
Ce que vous cherchez peut-être defer.inlineCallbacks
qui vous permet d'utiliser un générateur pour créer une chaîne séquentielle de différés. Essentiellement, vous pourriez simplement créer un générateur qui ne se termine jamais (ou se termine conditionnellement) et continuer à générer des reports à partir de cela.
Il y a un grand écrit sur l'utilisation inlineCallbacks
à krondo.com.
heh caractéristique impressionnante. me rappelle les monades à Haskell, un peu. Cependant, je ne pense pas que ce soit ce que je cherche. Je vais y penser plus quand ce n'est pas si tard – Claudiu
- 1. Silverlight: le temporisateur MouseLeftButtonDown déclenche à plusieurs reprises un événement
- 2. python twisted: récupérer un temps d'exécution différé
- 3. objet div clignotant à plusieurs reprises
- 4. Arrêt d'une fonction jquery à plusieurs reprises
- 5. Git fusionne à plusieurs reprises le squash
- 6. dragStart sur draggables appelé à plusieurs reprises jquery?
- 7. jQuery FADEIN fadeout à plusieurs reprises
- 8. L'événement jQuery Trigger se déclenche plusieurs fois
- 9. Pourquoi un différé ne peut-il pas être passé à un callback dans Python Twisted?
- 10. Événement qui se déclenche uniquement lorsque l'utilisateur déplace le séparateur?
- 11. Je dois appeler une DLL qui appelle 5 autres dll à plusieurs reprises dans une application
- 12. MSMQ - Messages en cours de traitement à plusieurs reprises
- 13. Lire des entiers à partir d'AppSettings à plusieurs reprises
- 14. Comment puis-je inviter l'utilisateur à plusieurs reprises avec Tkx?
- 15. Comment faire feu de jquery hover event à plusieurs reprises
- 16. Lecture/écriture de fichier texte à plusieurs reprises/simultanément
- 17. Expression régulière: correspondre le même caractère à plusieurs reprises
- 18. phptal: comment ajouter des attributs à plusieurs reprises?
- 19. Le travail au quartz se déclenche plusieurs fois
- 20. Mon événement Devexpress Gridview Delete se déclenche plusieurs fois
- 21. livequery déclenche plusieurs fois
- 22. Lecture de CSV en Python à plusieurs reprises?
- 23. onCLick getElementById(). InnerHTML ne fonctionne pas à plusieurs reprises?
- 24. Comment fusionner à plusieurs reprises des succursales dans Mercurial
- 25. des questions curl PHP - en cours d'exécution à plusieurs reprises
- 26. Événement qui se déclenche lorsqu'un formulaire est modifié
- 27. Le programme Twisted/tkinter se bloque à la sortie
- 28. AS3 - Ecouteur d'événement qui ne se déclenche qu'une seule fois
- 29. Evénement Javascript qui se déclenche sans intervention de l'utilisateur?
- 30. Django sur Twisted avec plusieurs hôtes virtuels?
Il a littéralement été quatre ans, mais quelqu'un m'a donné un très satisfaisant [ici] (http://stackoverflow.com/a/27996359/2419669). – yangmillstheory