如何使Luigi任务自行关闭?

时间:2018-09-19 15:23:12

标签: python python-2.7 luigi

我们有一个Luigi任务,该任务从凌晨2点开始,可以运行任意小时。我们要确保,如果未在上午6点之前完成,则会自行关闭。有什么办法吗?该任务在Mesos上运行,所以我知道我可以运行一个单独的任务或脚本来使用Mesos executor HTTP API并杀死它,但是有没有办法对任务本身进行编码以在给定时间关闭?

谢谢。

1 个答案:

答案 0 :(得分:0)

为任务使用自定义超时。根据{{​​3}},您可以将其设置为luigi级别或每个任务:

  

[工作者]

     

超时:

     

杀死运行时间过长的任务的秒数。这为所有任务提供了默认值,可以通过在任何任务中设置worker-timeout属性来覆盖默认值。这仅在使用多个工作程序时有效,因为超时是通过杀死工作程序子进程来实现的。默认值为0,表示没有超时。

因此,您的任务应如下所示:

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

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