[Twisted-Python] Looping

David Wilson david.craig.wilson at gmail.com
Sat Sep 20 00:28:27 EDT 2008


Hi All,
I'm trying to pick up Twisted and I'm having trouble with looping.

I expected that a Deferred returned from a looping call would be available
after each call.  But it's only available after the loop is stopped.  Am I
looking for a different class?

Thanks,
Dave

p.s.  Ultimately I'd like to watch a file and post any new lines up to an
HTTP server.  If there is a direct way to get there, please let me know.
Thanks!


from twisted.internet import task, defer
from twisted.internet import reactor
import sys
import time

def check_file_p(fp):
    time.sleep(2)
    #print fp
    sys.stdout.write('starting check...\n')
    fp.seek(fp.tell())
    list = []
    for line in fp.readlines():
        #sys.stdout.write(line)
        list.append(line)
    str_list = str(list)
    d = defer.Deferred()
    #print str_list
    d.callback(str_list)
    print d
    return d

def print_list(string):
    print 'calling string list...'
    sys.stdout.write('string: ' + string)

fn = r"C:\var\twisted.txt"
f = open(fn, 'r')
#l = task.LoopingCall(runEverySecond)
"""
didn't work
l = task.LoopingCall(check_file_p, f)
d = l.start(5.0, False) # call every x seconds
"""
d = task.deferLater(reactor, 3.5, check_file_p, f)

print d
d.addCallback(print_list)
print d
print 'starting reactor'
#l.stop() #will stop the looping calls
reactor.run()
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://twistedmatrix.com/pipermail/twisted-python/attachments/20080919/e183eeea/attachment.htm 


More information about the Twisted-Python mailing list