| Home | Trees | Indices | Help |
|
|---|
|
|
1 # encoding: utf-8
2
3 """Blocking immediate delivery manager.
4
5 This delivers messages as soon as it is enqueued, without using threading."""
6
7
8 import logging
9
10 from turbomail.api import Manager
11 from turbomail.exceptions import TransportExhaustedException
12
13
14 __all__ = ['load']
15
16 log = logging.getLogger("turbomail.manager")
17
18
19
21 return ImmediateManager()
22
23
25 name = "immediate"
26
28 log.info("Immediate manager starting up.")
29 self.transport = None
30 super(ImmediateManager, self).__init__()
31 log.info("Immediate manager ready.")
32
37
41
43 log.info("Attempting delivery of message %s." % message.id)
44
45 # If the parent fails, we fail.
46 if not super(ImmediateManager, self).deliver(message):
47 log.debug("Parent failure.")
48 return False
49
50 if not self.transport:
51 self.transport = self.get_new_transport()
52 try:
53 self.transport.deliver(message)
54 log.info("Delivery of message %s successful." % message.id)
55 except TransportExhaustedException:
56 log.debug("Transport exhausted.")
57 self._shutdown_transport()
58 self.deliver(message)
59 except:
60 log.error("Delivery of message %s failed." % message.id)
61 raise
62 return True
63
| Home | Trees | Indices | Help |
|
|---|
| Generated by Epydoc 3.0.1 on Fri May 28 17:01:40 2010 | http://epydoc.sourceforge.net |