У нас есть задания, которые взаимодействуют с машинным кодом, и есть неизбежные утечки памяти, пока рабочий обрабатывает задачу. Простым решением наших проблем был перезапуск воркера после определенного количества задач.
Мы переходим с многопроцессорной обработки Python, в которой есть полезная опция maxtasksperchild, которая закрывает рабочие процессы после определенного количества задач.
Есть ли что-то встроенное в dask, сопоставимое с maxtasksperchild?
В качестве обходного пути мы отслеживаем исполнителей, которые выполнили задачу, добавляя их адрес воркера в полезные данные результата и вызывая retire_workers на стороне клиента вручную.