Как избежать одновременного запуска определенной задачи в Luigi с несколькими работниками

Я использую Luigi для создания задач анализа данных, включая построение графиков с помощью matplotlib.

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

Чтобы решить эту проблему, я хочу избежать одновременного запуска нескольких рабочих процессов только для этой задачи построения графика при выполнении других задач в нескольких рабочих процессах. Как я могу это сделать?


person Hiro    schedule 30.10.2015    source источник


Ответы (1)


Для этого вы можете использовать ресурсы. На /etc/luigi/client.cfg настройте ресурс, например:

[resources]
mathplotlib: 1

А затем измените свою задачу следующим образом:

class MyTask(luigi.Task):
    resources = {"mathplotlib": 1}

Если у вас есть несколько машин, на которых запущены рабочие процессы luigi, и вы хотите, чтобы только один рабочий процесс на всех машинах мог использовать данный ресурс, вы можете посмотреть это решение.

person matagus    schedule 30.10.2015