Browse Source

trim down is_due method

Patrick 15 years ago
parent
commit
538defaffa
1 changed files with 16 additions and 25 deletions
  1. 16 25
      celery/task/base.py

+ 16 - 25
celery/task/base.py

@@ -839,32 +839,23 @@ class ScheduledTask(PeriodicTask):
     day_of_week = None    # (0 - 6) (Sunday=0)
     abstract = True
 
+    def check_hour_minute(self, now):
+        (due, when) = (False, 1)
+        if self.hour is None and self.minute is None:
+            (due, when) = (True, 1)
+        if self.hour is None and self.minute == now.minute:
+            (due, when) = (True, 1)
+        if self.hour == now.hour and self.minute is None:
+            (due, when) = (True, 1)
+        if self.hour == now.hour and self.minute == now.minute:
+            (due, when) = (True, 1)
+        return (due, when)
+
     def is_due(self, last_run_at):
         n = get_current_time()
         last = (n - last_run_at)
+        (due, when) = (False, 1)
         if last.days > 0 or last.seconds > 60:
-            if self.day_of_week is None:
-                if self.hour is None and self.minute is None:
-                    return (True, 1)
-
-                if self.hour is None and self.minute == n.minute:
-                    return (True, 1)
-
-                if self.hour == n.hour and self.minute is None:
-                    return (True, 1)
-
-                if self.hour == n.hour and self.minute == n.minute:
-                    return (True, 1)
-            elif self.day_of_week == n.isoweekday():
-                if self.hour is None and self.minute is None:
-                    return (True, 1)
-
-                if self.hour is None and self.minute == n.minute:
-                    return (True, 1)
-
-                if self.hour == n.hour and self.minute is None:
-                    return (True, 1)
-
-                if self.hour == n.hour and self.minute == n.minute:
-                    return (True, 1)
-        return (False, 1)
+            if self.day_of_week in (None, n.isoweekday()):
+                (due, when) = self.check_hour_minute(n)
+        return (due, when)