Browse Source

Removes timer2 import side effect not needed in Celery

Removes use of default_timer
Ask Solem 11 years ago
parent
commit
e4d0c5d580
2 changed files with 7 additions and 15 deletions
  1. 6 13
      celery/utils/timer2.py
  2. 1 2
      celery/worker/consumer.py

+ 6 - 13
celery/utils/timer2.py

@@ -38,6 +38,8 @@ IS_PYPY = hasattr(sys, 'pypy_version_info')
 
 logger = get_logger('timer2')
 
+__all__ = ['Entry', 'Schedule', 'Timer', 'to_timestamp']
+
 
 class Entry(object):
     if not IS_PYPY:  # pragma: no cover
@@ -240,9 +242,10 @@ class Timer(threading.Thread):
             super(Timer, self).start(*args, **kwargs)
 
     def __init__(self, schedule=None, on_error=None, on_tick=None,
-                 max_interval=None, **kwargs):
+                 on_start=None, max_interval=None, **kwargs):
         self.schedule = schedule or self.Schedule(on_error=on_error,
                                                   max_interval=max_interval)
+        self.on_start = on_start
         self.on_tick = on_tick or self.on_tick
         threading.Thread.__init__(self)
         self._is_shutdown = threading.Event()
@@ -294,6 +297,8 @@ class Timer(threading.Thread):
 
     def ensure_started(self):
         if not self.running and not self.isAlive():
+            if self.on_start:
+                self.on_start(self)
             self.start()
 
     def _do_enter(self, meth, *args, **kwargs):
@@ -333,15 +338,3 @@ class Timer(threading.Thread):
     @property
     def queue(self):
         return self.schedule.queue
-
-default_timer = _default_timer = Timer()
-apply_after = _default_timer.apply_after
-apply_at = _default_timer.apply_at
-apply_interval = _default_timer.apply_interval
-enter_after = _default_timer.enter_after
-enter = _default_timer.enter
-exit_after = _default_timer.exit_after
-cancel = _default_timer.cancel
-clear = _default_timer.clear
-
-atexit.register(_default_timer.stop)

+ 1 - 2
celery/worker/consumer.py

@@ -38,7 +38,6 @@ from celery.five import items, values
 from celery.utils.functional import noop
 from celery.utils.log import get_logger
 from celery.utils.text import truncate
-from celery.utils.timer2 import default_timer
 from celery.utils.timeutils import humanize_seconds, rate
 
 from . import heartbeat, loops, pidbox
@@ -166,7 +165,7 @@ class Consumer(object):
         self.hostname = hostname or socket.gethostname()
         self.pid = os.getpid()
         self.pool = pool
-        self.timer = timer or default_timer
+        self.timer = timer
         self.strategies = self.Strategies()
         conninfo = self.app.connection()
         self.connection_errors = conninfo.connection_errors