def task_done(self, task, **kw):
    if task.queue != self.queue:
        return
memdb.decr(self.count_prop)
if memdb.get(self.count_prop) == '0':
    memdb.rpush(self.finished_prop, 1)

def register_queue_hooks(self):
    before_task_publish.connect(self.task_add)
task_postrun.connect(self.task_done)

def join(self):
    memdb.brpop(self.finished_prop)
Celery equivalent of a JoinableQueue