Планирование задач с помощью python / celery / любой другой очереди задач на основе доступной оперативной памяти - PullRequest
0 голосов
/ 17 сентября 2018

Есть ли способ заставить Celery распределять задачи между работниками на основе доступной оперативной памяти? Я занимаюсь разработкой веб-приложения, которое применяет алгоритмы, требующие памяти, для больших данных в памяти. Есть ли способ сделать это более надежным, используя Celery для учета доступной оперативной памяти?

1 Ответ

0 голосов
/ 17 сентября 2018

Распределение задач между работниками на основе доступной оперативной памяти невозможно. Но, в зависимости от ваших настроек и конкретных требований, существуют способы решения этой проблемы. С головы до головы я могу подумать:

  • вы запускаете одного работника (и ничего больше) на машине с большим количеством оперативной памяти и пусть этот рабочий обрабатывает только эти ресурсоемкие задачи
  • если вы знаете, сколько памяти вам нужно для обработки задания, вы можете проверьте, доступна ли эта память в качестве первого шага в вашей задаче (при условии, что на этом ящике работает не так уж много другого, память между проверкой и фактическим запуском вашего нехватка памяти) и если нет, вы можете повторить задание после определенное время
...