Как убить все фоновые процессы Celery
Уничтожение всех процессов celery включает в себя 'grep'ing по команде 'ps' и выполнение команды kill по всем PID. Greping
в команде ps приводит к отображению информации о собственном процессе команды grep. Для того чтобы пропустить этот PID, 'grep
Команда-v grep" - это пипл, который выполняет условие "not" на ключе поиска "grep". Команда 'awk' - это
используется для фильтрации только 2-го, а команда 'tr' переводит результат вывода команды 'awk' из строк в столбцы.
Передача команды 'kill' не сработала, поэтому весь процесс был установлен как подмена команды, т.е.
'$()'. Перенаправление в конце не является обязательным. Она нужна только для того, чтобы заглушить конечный вывод в фон.
kill -9 $(ps aux | grep celery | grep -v grep | awk '{print $2}' | tr '\n' ' ') > /dev/null 2>&1
Помимо стандартных unix способов уничтожения процессов Celery, Celery также предоставляет API для уничтожения всех рабочих, прослушивающих определенного брокера.
- Чтобы убить, используйте python. Вы можете обратиться к документации здесь или здесь. Первая функция вызывает вторую внутреннюю функцию.
app.control.shutdown()
где app - экземпляр приложения celery, настроенный с брокером.
- Для этого также можно использовать интерфейс командной строки Celery.
celery -A имя_приложения control shutdown