Python verdreht: wie planen?

Nach eintägiger Erfahrung in Twisted versuche ich, das Senden von Nachrichten als Antwort an den TCP-Client zu planen:

import os, sys, time
from twisted.internet import protocol, reactor

self.scenario = [(1, "Message after 1 sec!"), (4, "This after 4 secs"), (2, "End final after 2 secs")]
for timeout, data in self.scenario:
        reactor.callLater(timeout, self.sendata, data)
        print "waited %d time, sent %s\n"%(timeout, data)

Jetzt sendet es Nachrichten, aber ich habe 2 Probleme:
1) "timeout" geht von "now" aus und ich möchte es zählen, nachdem jede vorherige Aufgabe abgeschlossen wurde (vorherige Nachricht wurde gesendet)
2) Ich kann die Verbindung nicht schließen, nachdem alle Nachrichten gesendet wurden. Wenn ich @ platzieself.transport.loseConnection() nachcallLaters es schließt sofort die Verbindung.

Im vorigen Versuch habe ich @ nicht benutreactor.callLater, aber nurself.transport.write() undtime.sleep(n) imfor loop. In diesem Fall wurden alle Nachrichten zusammen gesendet, nachdem alle Zeitüberschreitungen verstrichen waren ... Ich wollte nichts.
Der Zweck ist es, auf Client-Verbindung zu warten, Timeout1 zu warten und Nachricht1 zu senden, Timeout2 zu warten und Nachricht2 zu senden, ... usw. Nach der letzten Nachricht - Verbindung schließen.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage