Как заставить адаптивных рабочих, выполняющих задачи, запускать некоторый код при запуске?

Я создаю планировщик dask с использованием dask-kubernetes и переводю его в адаптивный режим.

from dask-kubernetes import KubeCluster
cluster = KubeCluster()
cluster.adapt(minimum=0, maximum=40)

Мне нужно, чтобы каждый работник запускал некоторый установочный код при создании (установка некоторых переменных окружения с помощью os.environ) для правильного выполнения задач.

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

Как передать код моим работникам для выполнения при запуске?

1 ответ

Решение

Если все, что вам нужно, это установить переменные окружения, то вы, вероятно, можете справиться с этим с помощью файла конфигурации dask-kuberenetes. Я думаю, что KubeCluster может даже иметь ключевое слово env= или что-то в этом роде.

Для более общего кода вы правы, что использование сценариев предварительной загрузки в настоящее время является лучшим подходом. Это не идеально во всех ситуациях. В идеале вы могли бы зарегистрировать некоторый код запуска в планировщике, чтобы передать его всем работникам при запуске. Это не реализовано по состоянию на 2018-08-01, хотя.

Другие вопросы по тегам