Как заставить адаптивных рабочих, выполняющих задачи, запускать некоторый код при запуске?
Я создаю планировщик 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, хотя.