#3352·luigi

使用远程调度程序的 Luigi 无法将终端中断信号传递给任务

作者: machoosharp创建于 2025年5月21日更新于 2025年5月21日

在 Python 中,我有一个任务,我按照以下方式构建它:Python # my_script.py build_success = luigi.build([MyTask()], workers=1, local_scheduler=False, scheduler_host='pod-A') 当我运行 `kubectl exec -it pod-B -- Python my_script.py` 时,这个进程会在 Kubernetes pod "pod-B" 中运行。 当我按 `Ctrl+C` 退出 kubectl exec 进程时,我希望 `MyTask()` 会停止运行。 如果不提供 `scheduler_host` 并设置 `local_scheduler=True`, 就可以按预期工作,但如果设置了 `scheduler_host`, 我就无法停止 `MyTask` 继续执行,尽管我已经退出了 kubectl 进程,并且 `pod-B` 上的 Python 进程也退出了。 `pod-A` 正在运行 `luigid`。 有人知道这个应该如何工作吗,是否这是一个 bug,或者我在这里做错了什么? 我甚至找不到这个进程继续运行的地方。 我们认为 luigi 守护进程以某种方式吸收了任务,并继续执行它,尽管原始执行器已经停止。 我无法在网上找到有关这种特定交互的文档。 我使用的是 luigi 3.5.2 版本。