Luigi 未接 运行 的下一个任务,剩下一堆待处理任务,没有失败的任务

Luigi not picking up next task to run, bunch of pending tasks left, no failed tasks

我正在 运行 设置一个大型 Luigi 工作流,该工作流应该 运行 总共有一百多个任务。工作流程在很长一段时间内都运行良好,但在某个阶段出现了 15 个待处理任务并且所有其他任务都已成功完成且没有失败的任务。但是,它似乎不再执行任何待处理的任务。我仔细查看了日志,没有错误。从那时起,它只是定期打印以下日志:

There are no more tasks to run at this time
There are 15 pending tasks possibly being run by other workers
There are 15 pending tasks unique to this worker
There are 15 pending tasks last scheduled by this worker

我使用的luigi版本是2.6.1。这是屏幕截图:

知道这里会发生什么吗?为什么它会认为运行没有任务呢?这是我的 luigi worker 配置:

[worker]
keep-alive = True
max-reschedules = 3

在一位同事的帮助下解决了这个问题。问题在于,在这 15 个待处理任务中,处于最低级别的任务需要一些 CPU 资源(10 个核心)。但是,我在启动工作流程时没有传递任何 luigi 资源参数。因此,尽管 运行 有任务,但由于缺乏资源,luigi 并未将其中任何任务视为 运行-合格。传递 {"cpu_cores": 10} 的资源参数解决了我的问题。

也可以通过 luigi 的配置文件完成,如下所示:

[resources]
cpu_cores=10

如果问题依旧,我已经用过了。使用以下代码后,任务可以正常执行。

class TaskName(luigi.Task):
resources = {'max_workers': 1}