Как заставить задачу Луиджи закрыться? - PullRequest
0 голосов
/ 19 сентября 2018

У нас есть задание Luigi, которое начинается в 2 часа ночи и может выполняться произвольное количество часов.Мы хотим убедиться, что, если это не будет сделано, скажем, в 6 утра, оно отключится.Есть какой-либо способ сделать это?Задача выполняется в Mesos, поэтому я знаю, что могу запустить отдельную задачу или сценарий, чтобы использовать HTTP-API Meso executor и убить его, но есть ли способ закодировать само задание для завершения в определенный момент времени?

Заранее спасибо.

1 Ответ

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

Используйте пользовательское время ожидания для вашей задачи.В соответствии с документами вы можете установить его на уровне Луиджи o за задачу:

[работник]

время ожидания:

количество секундпосле чего убить задачу, которая выполнялась слишком долго.Это обеспечивает значение по умолчанию для всех задач, которое можно переопределить, установив свойство worker-timeout в любой задаче.Это работает только при использовании нескольких рабочих, так как время ожидания реализуется путем уничтожения рабочих подпроцессов.Значение по умолчанию равно 0, что означает отсутствие времени ожидания.

Итак, ваша задача должна выглядеть следующим образом:

class MyTask(luigi.Task):
    worker_timeout = 60 * 60 * 4 # 4 hours in seconds

    # (rest of your task)
    # def run():
    #    do_something()
...