Можно ли назначить рабочие ресурсы распределенному рабочему dask после создания?

#dask #dask-distributed

#dask #dask-распределенный

Вопрос:

Согласно названию, если я создаю рабочих с помощью helm или kubernetes, можно ли назначить «рабочие ресурсы» (https://distributed.readthedocs.io/en/latest/resources.html#worker-resources ) после того, как рабочие были созданы?

Вариант использования — это задачи, которые попадают в базу данных, я хотел бы ограничить количество процессов, способных обращаться к базе данных за данный запуск, без ограничения общего размера кластера.

Комментарии:

1. Хорошо, я нашел еще один поиск по коду set_resources . Я предполагаю, что я мог бы сделать client.run(lambda x: set_resources('my-db') . Будет ли это наиболее подходящим способом для достижения этой цели?

Ответ №1:

По состоянию на 2019-04-09 стандартного способа сделать это не существует. Вы нашли Worker.set_resources метод, который разумно использовать. В конце концов, я бы также ожидал, что рабочие плагины справятся с этим, но они не реализованы.

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