如何在多个工作人员的 Luigi 中同时避免 运行 特定任务

How to avoid running a specific task simultaneously in Luigi with multiple workers

我使用 Luigi 构建数据分析任务,包括通过 matplotlib 绘图。

似乎并发运行 matplotlib 绘图会导致问题,导致过早地从任务返回,什么都不做,出于某种原因。 (看起来这是 matplotlib 的问题,虽然我可能是错的。)

为了解决这个问题,我想避免 运行 多个工人同时只为那个绘图任务,而 运行 多个工人同时完成其他任务。我该怎么做?

您可以使用 resources。在 /etc/luigi/client.cfg 配置资源,如:

[resources]
mathplotlib: 1

然后,这样修改你的任务:

class MyTask(luigi.Task):
    resources = {"mathplotlib": 1}

如果您有多台机器 运行 luigi worker,并且您希望所有机器上只有一个 worker 可以使用给定资源,那么您可以看一下 this solution