def get_ironmq_queue_count(active_queues): if not IronMQ: return print("iron_mq not loaded, not getting queue count") assert(settings.IRON_MQ_PROJECT_ID) assert(settings.IRON_MQ_TOKEN) assert(settings.IRON_MQ_HOST) lock = redis.StrictRedis( host=settings.proc_scalar_lock_url.hostname, port=int(settings.proc_scalar_lock_url.port), db=int(settings.proc_scalar_lock_url.path[1:]), password=settings.proc_scalar_lock_url.password ) queue = IronMQ( host=settings.IRON_MQ_HOST, project_id=settings.IRON_MQ_PROJECT_ID, token=settings.IRON_MQ_TOKEN ) if not active_queues: active_queues = {} data = {} for queuename, procname in PROC_MAP.iteritems(): details = {} try: details = queue.getQueueDetails(queuename) print(repr(details)) length = details["size"] except (HTTPException, requests.exceptions.HTTPError): length = 0 if not procname in data: key = "DISABLE_CELERY_%s" % procname lock_type = lock.get(key) if not lock_type == 0: lock_type = 0 data[procname] = {'count': length, 'active': 0, 'deploy_lock': lock_type} else: data[procname]['count'] += length if procname in active_queues: data[procname]['active'] += active_queues[procname] return data