diff --git a/controller/api/models.py b/controller/api/models.py
index <HASH>..<HASH> 100644
--- a/controller/api/models.py
+++ b/controller/api/models.py
@@ -381,7 +381,7 @@ class App(UuidAuditedModel):
         # HACK (bacongobbler): we need to wait until publisher has a chance to publish each
         # service to etcd, which can take up to 20 seconds.
         time.sleep(20)
-        for i in range(len(intervals)):
+        for i in xrange(len(intervals)):
             delay = int(config.get('HEALTHCHECK_INITIAL_DELAY', 0))
             try:
                 # sleep until the initial timeout is over
ref(controller): switch to xrange

`range` returns a copy of the list in-memory at the first iteration, whereas `xrange` lazily evaluates, causing only one value present during runtime. Ergo, it is faster and more efficient.