Введение в Data Engineering: дата-пайплайны: Практические задачи построения пайплайнов / Нотификации в Telegram
В Luigi есть список событий на которые можно повесить свою callback-функцию:
# находится в luigi.event
class Event(object):
DEPENDENCY_DISCOVERED = "event.core.dependency.discovered" # triggered for every (task, upstream task) pair discovered in a jobflow
DEPENDENCY_MISSING = "event.core.dependency.missing"
DEPENDENCY_PRESENT = "event.core.dependency.present"
BROKEN_TASK = "event.core.task.broken"
START = "event.core.start"
PROGRESS = "event.core.progress"
FAILURE = "event.core.failure"
SUCCESS = "event.core.success"
PROCESSING_TIME = "event.core.processing_time"
TIMEOUT = "event.core.timeout" # triggered if a task times out
PROCESS_FAILURE = "event.core.process_failure" # triggered if the process a task is running in dies unexpectedly
Конкретно для этого проекта мы рассмотрим Event.FAILURE
, это событие возникает, когда задача неудачно завершается. За вызов событий отвечает метод trigger_event
в классе Task
: https://github.com/spotify/luigi/blob/master/luigi/task.py#L266. Функция callback должна принимать 2 обязательных аргументы:
Task
)Итак, наша задача:
Event.FAILURE