Exemplo n.º 1
0
class Task(Action):
    """
        Use deferred to detach action execution from 
        from caller, allowing registration by caller 
        to task for getting results asynchronously.
    """
    def __init__(self, *args, **kw):
        self.deferred = Deferred()
        super(Task, self).__init__(*args, **kw)
    def get_deferred(self):
        return self.deferred
    def invoke(self, *args, **kw):
        try:
            result = super(Task, self).invoke(*args, **kw)
        except Exception, error:
            msglog.log('broadway', msglog.types.WARN, 
                       "Task '%s' execution failed." % self)
            msglog.exception(prefix="handled")
            self.deferred.failed(error)
        else:
Exemplo n.º 2
0
 def send_request(self, request):
     """
         Send request message.
         
         A Deferred instance is returned immediately, which 
         can then be used to wait on the response, or to 
         register a call-back instead.
         
         Value returned via deferred will be the response 
         message itself.
     """
     deferred = Deferred()
     self.deferreds[request.getheader("CORID")] = deferred
     request.setheader("REPLY-TO", self.responses.geturl())
     self.messaging.route(request)
     return deferred
Exemplo n.º 3
0
 def invoke(*args, **kw):
     deferred = Deferred()
     try:
         result = invocable(*args, **kw)
     except Exception, error:
         deferred.failed(error)
Exemplo n.º 4
0
 def __init__(self, *args, **kw):
     self.deferred = Deferred()
     super(Task, self).__init__(*args, **kw)
Exemplo n.º 5
0
 def receive(self, blocking=True, timeout=None):
     with self.synclock:
         deferred = Deferred()
         self.deferreds.add(deferred)
     return deferred.getvalue(blocking, timeout)
Exemplo n.º 6
0
 def invoke(*args, **kw):
     deferred = Deferred()
     try:
         result = invocable(*args, **kw)
     except Exception, error:
         deferred.failed(error)