我熟悉Luigi事件处理机制,我已经实现了一个管道,当管道成功完成时,会发送成功的电子邮件。 我想知道如何在任务已经运行时触发事件,因此不再重新运行任务。一个典型的例子 - 当一个新的日期文件出现在每日时间表上时,我的工作就会被触发。周日,没有新文件出现,luigi产生了这个输出:
===== Luigi Execution Summary =====
Scheduled 1 tasks of which:
* 1 present dependencies were encountered:
- 1 XXXXRunner(...)
Did not run any tasks
This progress looks :) because there were no failed tasks or missing
external dependencies
为了成功运行,我通常会触发如下电子邮件:
@SomeTaskRunner.event_handler(luigi.Event.SUCCESS)
def send_success_email():
....
但是,如果由于所有依赖项都已满足而没有运行任务,我该如何触发事件处理程序?
答案 0 :(得分:0)
我已经弄清楚了。
我需要使用此事件处理程序:
@SomeTaskRunner.event_handler(luigi.Event.DEPENDENCY_PRESENT)