[Twisted-Python] can addCallback accept list of deferreds?

Pet petshmidt at googlemail.com
Tue Jun 16 07:23:17 EDT 2009


Hi,

I'm trying to process several items in callback function writeLog
            d.addCallback(self.writeLog,g=g)
see below.

Can writeLog return DeferredList instead of Deferred?
WriteLog should run several inserts into db (some of which may fail).
Or am I completely wrong here?

Thanks, Pet

def getData(self, *args, **kwargs ):
    try:
        g = MyClass(self.db)
        d = self.getResult(params=kwargs['params'], g=g)
        if d:
            d.addCallback(self.sendResult)
            d.addErrback(log.err)

            d.addCallback(self.writeLog,g=g)
            d.addErrback(log.err)

            return d
    except Exception, e:
        log.msg('Unknown error in getData:', e)
        return False


def writeLog(self, *args, **kwargs):
    g = kwargs['g']
    dlist = [self.wLog(g, p) for p in g.list]
    d = DeferredList(dlist, consumeErrors=True).addCallback(log.err)
    return d

def wLog(self, g, p):
    return self.db.runInteraction(g.insertLog,p)




More information about the Twisted-Python mailing list