DEV Community

Peter van der Does
Peter van der Does

Posted on


Wait for celery to finish its tasks

When deploying a Python application you sometimes have to restart celery. If there is a long-running task you might not want to kill that task, but rather wait 'till the tasks have finished.

This function will pause the accepting of new tasks and wait 'till all tasks are finished.

from celery import Celery
from import Control

def celery_check():
    app = Celery("app") # Name of the main module
    control = Control(app)
    control.cancel_consumer("celery")  # queue name, must probably be specified once per queue, but we use a single queue
    inspect = control.inspect()
    while True:
        active =
        if len(active.items()) > 0:
            seconds = 10
Enter fullscreen mode Exit fullscreen mode

Oldest comments (0)

Welcome! 👋 New to DEV? Head over to our Welcome Thread and tell us what you're working on!