Greetings,

I'm a newcomer to twisted and am struggling a little with the learning curve.
I have an idea for an app that I believe is ideally suited for twisted though I
could use some help finding the right way to approach it.

It performs a status check by getting a page from a web server.
It calculates the time it took to download the page and also can check that the
content matches a predefined string.

That part of it is working fine but I'd like to take it a step further.
I need a way to impose a limit on how long it waits to receive a response so that I can detect
unresponsive hosts. I must say that I'm at a loss as to how to add such a  timeout to my code.
Any pointers or examples would be greatly appreciated.

Here is a simplified version of the function that I'm working with.
---------------------------------------

from twisted.internet import task, reactor
from twisted.web import client
import time

class HTCheck:
    def handleResponse(self, data, start_time):
        response_time = time.time() - start_time
        if data == "It lives!\n":
            Status = "OK"
        else:
            Status = "Test page content mismatch"
    def check(self):
        start_time = time.time()
        d = client.getPage("http://localhost/test.html ")
        d.addCallback(self.handleResponse, start_time)
        return d

l = task.LoopingCall(HTCheck().check)
l.start(10.0)
reactor.run()