equal
deleted
inserted
replaced
1 from functools import partial |
1 from functools import partial |
2 |
2 |
|
3 from twisted.python import log |
3 from twisted.internet.defer import inlineCallbacks, returnValue, maybeDeferred, Deferred |
4 from twisted.internet.defer import inlineCallbacks, returnValue, maybeDeferred, Deferred |
4 |
5 |
5 from ..error import NoRouteForTask, RejectRecipient |
6 from ..error import NoRouteForTask, RejectRecipient |
6 |
7 |
7 from ..model.offer import offers |
8 from ..model.offer import offers |
42 def n(): |
43 def n(): |
43 try: |
44 try: |
44 offer = os.next() |
45 offer = os.next() |
45 d = maybeDeferred(offers[offer],self.recipient,self.job.message) |
46 d = maybeDeferred(offers[offer],self.recipient,self.job.message) |
46 d.addCallback(self.d.callback) |
47 d.addCallback(self.d.callback) |
47 d.addErrback(addErr) |
48 d.addErrback(addErr,offer) |
48 d.addErrback(self.d.errback) |
49 d.addErrback(self.d.errback) |
49 return d |
50 return d |
50 except StopIteration: |
51 except StopIteration: |
51 self.d.errback(NoRouteForTask()) |
52 self.d.errback(NoRouteForTask()) |
52 |
53 |
53 def addErr(failure): |
54 def addErr(failure, offer): |
54 failure.trap(RejectRecipient) |
55 if not isinstance(failure.value, RejectRecipient): |
55 return n() |
56 log.err(_why="Job(%s): Send to '%s' failed via '%s'"%(self.job.dbjob, self.recipient, offer),_stuff=failure) |
|
57 n() |
56 |
58 |
57 n() |
59 n() |
58 |
60 |
59 |
61 |
60 @inlineCallbacks |
62 @inlineCallbacks |