Explorar o código

celery.EventTimer moved to celery.timer

Ask Solem %!s(int64=16) %!d(string=hai) anos
pai
achega
c5c85cd70f
Modificáronse 1 ficheiros con 24 adicións e 0 borrados
  1. 24 0
      celery/timer.py

+ 24 - 0
celery/timer.py

@@ -0,0 +1,24 @@
+import time
+
+
+class TimeoutError(Exception):
+    """The event has timed out."""
+
+
+class EventTimer(object):
+    """Do something at an interval."""
+
+    def __init__(self, event, interval=None):
+        self.event = event
+        self.interval = interval
+        self.last_triggered = None
+
+    def tick(self):
+        if not self.interval: # never trigger if no interval.
+            return
+        if not self.last_triggered or \
+                time.time() > self.last_triggered + self.interval:
+            self.event()
+            self.last_triggered = time.time()
+
+