title: What is causing the delay in my Celery tasks in my Heroku/Redistogo-hosted Django app?
body: <p>I have a Django 1.6 app running on the Heroku cedar-14 platform.  I send tasks to be performed by a worker via Celery 3.1.18 with the redis bundle and the Redis To Go (Micro) add-on.  I have very few tasks and they complete in 3-5 seconds.</p>
  
  <p>I send my tasks to the worker via Celery's <code>delay()</code> method.  Unfortunately, the worker doesn't log reception of the task for 10-15 minutes later -- after which the task completes in the expected 3-5 seconds.  <strong>What might be causing this delay?</strong></p>
  
  <p>I don't see this delay on my development server and I have been using this app for a couple of years now -- this delay is a recent development.  I did recently upgrade to Heroku's cedar-14 from cedar and to a larger Redis To Go plan, but I am uncertain if this delay is associated with these changes.</p>
  
  <p><strong>Update</strong></p>
  
  <p>It looks as if task has to wait for a worker dyno to run the task after some delay.  In the past, a worker started running the task immediately when a task was submitted.</p>
  
  <p>This is the Procfile I use:</p>
  
  <pre><code>web: newrelic-admin run-program python manage.py run_gunicorn -b "0.0.0.0:$PORT" -t 30 -w 3
  worker: newrelic-admin run-program celery -A myapp.celery:CELERY_APP -E -B --loglevel=INFO worker
  </code></pre>
  
  <p>So the question becomes how do I return to the behavior where submittal of a celery task causes a task to run immediately?</p>
  
  <p>I supsect this issue applies: <a href="https://github.com/celery/celery/issues/2296" rel="nofollow">https://github.com/celery/celery/issues/2296</a></p>