pgq: move RetriableEvent to consumer.py
authorMarko Kreen <markokr@gmail.com>
Sun, 7 Jul 2013 14:50:07 +0000 (17:50 +0300)
committerMarko Kreen <markokr@gmail.com>
Sun, 7 Jul 2013 14:50:07 +0000 (17:50 +0300)
It's hard to get overview if the retry-related code
is laying around in different places.

As only Consumer class deals with retry, move all crap
into same file.

python/pgq/consumer.py
python/pgq/event.py

index af5aaf1a10468f9299b7e7a7b1be82e0055160f6..d109f74925d5e9bbd4e912df8350bc64c3dcc0c8 100644 (file)
@@ -4,17 +4,47 @@
 """
 
 from pgq.baseconsumer import BaseConsumer, BaseBatchWalker
-from pgq.event import *
+from pgq.event import Event
 
 __all__ = ['Consumer']
 
 
+# Event status codes
+EV_UNTAGGED = -1
+EV_RETRY = 0
+EV_DONE = 1
+
+
+class RetriableEvent(Event):
+    """Event which can be retryed
+
+    Consumer is supposed to tag them after processing.
+    """
+
+    __slots__ = ('_status', )
+
+    def __init__(self, queue_name, row):
+        super(RetriableEvent, self).__init__(self, queue_name, row)
+        self._status = EV_DONE
+
+    def tag_done(self):
+        self._status = EV_DONE
+
+    def get_status(self):
+        return self._status
+
+    def tag_retry(self, retry_time = 60):
+        self._status = EV_RETRY
+        self.retry_time = retry_time
+
+
 class RetriableWalkerEvent(RetriableEvent):
     """Redirects status flags to RetriableBatchWalker.
 
     That way event data can be gc'd immediately and
     tag_done() events don't need to be remembered.
     """
+    __slots__ = ('_walker', )
     def __init__(self, walker, queue, row):
         Event.__init__(self, queue, row)
         self._walker = walker
index b083ba6339febc5d13e60028b668c32ce0568fc4..22e648a11ac6ddc1f2867637590179703f77e898 100644 (file)
@@ -2,12 +2,7 @@
 """PgQ event container.
 """
 
-__all__ = ['EV_UNTAGGED', 'EV_RETRY', 'EV_DONE', 'Event', 'RetriableEvent']
-
-# Event status codes
-EV_UNTAGGED = -1
-EV_RETRY = 0
-EV_DONE = 1
+__all__ = ['Event']
 
 _fldmap = {
         'ev_id': 'ev_id',
@@ -67,24 +62,3 @@ class Event(object):
         return "<id=%d type=%s data=%s e1=%s e2=%s e3=%s e4=%s>" % (
                 self.id, self.type, self.data, self.extra1, self.extra2, self.extra3, self.extra4)
 
-class RetriableEvent(Event):
-    """Event which can be retryed
-
-    Consumer is supposed to tag them after processing.
-    """
-
-    __slots__ = ('_status', )
-
-    def __init__(self, queue_name, row):
-        super(RetriableEvent, self).__init__(self, queue_name, row)
-        self._status = EV_DONE
-
-    def tag_done(self):
-        self._status = EV_DONE
-
-    def get_status(self):
-        return self._status
-
-    def tag_retry(self, retry_time = 60):
-        self._status = EV_RETRY
-        self.retry_time = retry_time