【问题标题】:How to make a Luigi task shut itself down?如何让 Luigi 任务自行关闭?
【发布时间】:2018-09-19 15:23:11
【问题描述】:

我们有一个 Luigi 任务,它从凌晨 2 点开始,可以运行任意小时数。我们希望确保如果没有在早上 6 点之前完成,它会自行关闭。有没有办法做到这一点?该任务在 Mesos 上运行,所以我知道我可以运行一个单独的任务或脚本来使用 Mesos 执行程序 HTTP API 并杀死它,但是有没有办法将任务本身编码为在给定时间关闭?

提前致谢。

【问题讨论】:

    标签: python python-2.7 luigi


    【解决方案1】:

    为您的任务使用自定义超时。根据docs,您可以将其设置为每个任务的 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()
    

    【讨论】:

      猜你喜欢
      • 2020-01-02
      • 2016-03-11
      • 2017-01-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-13
      • 1970-01-01
      相关资源
      最近更新 更多