+ def next_wait_time(cls):
+ now = datetime.datetime.now()
+ if cls.poll_started_at is None:
+ cls.poll_started_at = now
+ delta = now - cls.poll_started_at
+
+ if delta < datetime.timedelta(minutes=30):
+ return 30
+ elif delta < datetime.timedelta(hours=1):
+ return 60
+ elif delta < datetime.timedelta(hours=4):
+ return 5*60
+ elif delta < datetime.timedelta(days=1):
+ return 60*60
+ else:
+ raise Exception("Too long waiting")
+
+ @classmethod
+ def start_worker(cls):