如何避免在 Luigi 中与多个工作人员同时运行特定任务
Posted
技术标签:
【中文标题】如何避免在 Luigi 中与多个工作人员同时运行特定任务【英文标题】:How to avoid running a specific task simultaneously in Luigi with multiple workers 【发布时间】:2016-01-30 12:23:48 【问题描述】:我使用 Luigi 构建数据分析任务,包括通过 matplotlib 绘图。
似乎 matplotlib 绘图的并发运行会导致一个问题,这会导致由于某种原因过早地从任务中返回,什么也不做。 (看起来这是 matplotlib 的问题,虽然我可能错了。)
为了解决这个问题,我想避免同时为该绘图任务运行多个工作人员,同时在多个工作人员中运行其他任务。我该怎么做?
【问题讨论】:
【参考方案1】:您可以为此使用resources。在/etc/luigi/client.cfg
上配置如下资源:
[resources]
mathplotlib: 1
然后,这样修改你的任务:
class MyTask(luigi.Task):
resources = "mathplotlib": 1
如果您有多台机器运行 luigi worker,并且您希望所有机器中只有一个 worker 使用给定资源,那么您可以查看 this solution。
【讨论】:
以上是关于如何避免在 Luigi 中与多个工作人员同时运行特定任务的主要内容,如果未能解决你的问题,请参考以下文章
在luigi中使用multiprocessing.Queue
Luigi 没有接下一个要运行的任务,剩下一堆待处理的任务,没有失败的任务