title: How do I run celery status/flower without the -A option?
body: <p>Consider this bash session:</p>
  
  <pre><code>$ export DJANGO_SETTINGS_MODULE=web.settings
  $ celery status -b redis://redis.businessoptics.dev:6379/1 -t 10
  Error: No nodes replied within time constraint.
  $ celery status -b redis://redis.businessoptics.dev:6379/1 -t 10 -A scaffold.tasks.celery_app
  celery@worker.9e2c39a1c42c: OK
  </code></pre>
  
  <p>Why do I need the <code>-A</code> option? As far as I can tell celery should be able to detect the necessary metadata on redis.</p>
  
  <p>Similarly if I run <code>celery flower -b &lt;redis url&gt;</code> it shows that it successfully connects to redis but doesn't show any real workers/tasks/queues and shows several messages like <code>'stats' inspect method failed</code>. Again, adding <code>-A</code> causes it to work.</p>
  
  <p>I want to run flower in a minimal standalone Docker container that doesn't contain any of my code or its dependencies. Several repos such as <a href="https://github.com/totem/celery-flower-docker">this one</a> offer this kind of thing. So how can I do that? The linked repo offers many options but no way to specify the <code>-A</code> option, which suggests it is not necessary.</p>
  
  <p>I'm a beginner to celery so I may be missing something stupid. What am I supposed to do?</p>
  
  <p>The <code>scaffold.tasks.celery_app</code> module simply looks like this:</p>
  
  <pre><code>from celery import Celery
  from django.conf import settings
  
  app = Celery()
  app.config_from_object(settings)
  </code></pre>
  
  <p>And these are the Django settings that involve celery:</p>
  
  <pre><code>{'BROKER_HEARTBEAT': 0,
   'BROKER_TRANSPORT_OPTIONS': {'fanout_patterns': True,
                                'fanout_prefix': True,
                                'visibility_timeout': 172800},
   'BROKER_URL': 'redis://redis.businessoptics.dev:6379/1',
   'CELERYBEAT_SCHEDULE': {'journey-heartbeat': {'args': (),
                                                 'schedule': &lt;crontab: * * * * * (m/h/d/dM/MY)&gt;,
                                                 'task': 'kms.data.journey.tasks.heartbeat'}},
   'CELERYD_CONCURRENCY': 1,
   'CELERYD_HIJACK_ROOT_LOGGER': False,
   'CELERYD_LOG_COLOR': False,
   'CELERYD_MAX_TASKS_PER_CHILD': 1,
   'CELERYD_PREFETCH_MULTIPLIER': 1,
   'CELERY_ACCEPT_CONTENT': ['pickle'],
   'CELERY_ACKS_LATE': True,
   'CELERY_DEFAULT_EXCHANGE': 'default',
   'CELERY_DEFAULT_EXCHANGE_TYPE': 'direct',
   'CELERY_DEFAULT_QUEUE': 'default',
   'CELERY_DEFAULT_ROUTING_KEY': 'default',
   'CELERY_IGNORE_RESULT': False,
   'CELERY_IMPORTS': ['kms.knowledge.query.tasks2',
                      # names of several more modules...
                     ],
   'CELERY_QUEUES': [&lt;unbound Queue tablestore -&gt; &lt;unbound Exchange default(direct)&gt; -&gt; kms.data.table_store.tasks.#&gt;,
                      # several more similar-looking Queues...
                     &lt;unbound Queue default -&gt; &lt;unbound Exchange default(direct)&gt; -&gt; default&gt;],
   'CELERY_REDIRECT_STDOUTS': False,
   'CELERY_RESULT_BACKEND': 'database',
   'CELERY_RESULT_DBURI': 'mysql://businessoptics:businessoptics@mysql.businessoptics.dev:3306/product',
   'CELERY_RESULT_DB_SHORT_LIVED_SESSIONS': True,
   'CELERY_ROUTES': ['scaffold.tasks.routers.TaskNameRouter'],
   'CELERY_SEND_EVENTS': True,
   'CELERY_SEND_TASK_ERROR_EMAILS': False,
   'CELERY_SEND_TASK_SENT_EVENT': True,
   'CELERY_STORE_ERRORS_EVEN_IF_IGNORED': True,
   'CELERY_TASKNAME_ROUTES': [('tablestore', 'kms.data.table_store.tasks.#'),
                              # bunch of routes...
                              ],
   'CELERY_TASK_RESULT_EXPIRES': None,
   'CELERY_TIMEZONE': 'UTC',
   'CELERY_TRACK_STARTED': True,
   'CELERY_WORKER_DIRECT': True
  }
  </code></pre>
  
  <p>Here are the relevant versions:</p>
  
  <pre><code>celery==3.1.19
  Django==1.8
  django-celery==3.1.0
  redis==2.10.3
  </code></pre>