Пример #1
0
class ReactiveQueueTask(object):
    def __init__(self, func, args, kwargs):
        self.func = func
        self.args = args
        self.kwargs = kwargs
        self.deferred = Deferred()

    def __call__(self):
        return self.func(*self.args, **self.kwargs)

    def resolve(self, ret):
        self.deferred.callback(ret)

    def reject(self, error):
        self.deferred.errback(error)
Пример #2
0
    def findNode(self, id, callback, errback=None):
        """ returns the contact info for node, or the k closest nodes, from the global table """
        # get K nodes out of local table/cache, or the node we want
        nodes = self.table.findNodes(id, invalid=True)
        l = [x for x in nodes if x.invalid]
        if len(l) > 4:
            nodes = sample(l, 4) + self.table.findNodes(id, invalid=False)[:4]

        d = Deferred()
        if errback:
            d.addCallbacks(callback, errback)
        else:
            d.addCallback(callback)
        if len(nodes) == 1 and nodes[0].id == id:
            d.callback(nodes)
        else:
            # create our search state
            state = FindNode(self, id, d.callback, self.rawserver.add_task)
            self.rawserver.external_add_task(0, state.goWithNodes, nodes)
Пример #3
0
    def findNode(self, id, callback, errback=None):
        """ returns the contact info for node, or the k closest nodes, from the global table """
        # get K nodes out of local table/cache, or the node we want
        nodes = self.table.findNodes(id, invalid=True)
        l = [x for x in nodes if x.invalid]
        if len(l) > 4:
            nodes = sample(l , 4) + self.table.findNodes(id, invalid=False)[:4]

        d = Deferred()
        if errback:
            d.addCallbacks(callback, errback)
        else:
            d.addCallback(callback)
        if len(nodes) == 1 and nodes[0].id == id :
            d.callback(nodes)
        else:
            # create our search state
            state = FindNode(self, id, d.callback, self.rawserver.add_task)
            self.rawserver.external_add_task(0, state.goWithNodes, nodes)
from defer import Deferred

__author__ = 'cqh'

def myCallback(result):
    print result

def myErrback(err):
    print err
d=Deferred()
d.add_callback(myCallback)
#d.add_errback(myErrback)
d.callback("Trigger callback.")
Пример #5
0
from defer import Deferred

__author__ = 'cqh'
def callback1(result):
    print "Callback 1 said:",result
    return result

def callback2(result):
    print "Callback2 said:",result

def callback3(result):
    raise Exception("Callback 3")

def errback1(failure):
    print "Errback 1 had an an error on ,",failure
    return failure

def errback2(failure):
    raise Exception("Errback 2")

def errback3(failure):
    print "Errback3 took care of ",failure
    return "Everything is fine now."

d=Deferred()
d.add_callback(callback1)
d.add_callback(callback2)
d.add_callbacks(callback3,errback1)
d.add_errback(errback3)
d.callback("Test")