如何在代理上持久化由任务派生的进程



我正在开发一个包含任务的Azure Devops扩展。在其中一个任务中,我正在启动一个进程并进行配置。在另一个任务中,我正在访问同一个进程API来使用它。这运行得很好,但我注意到,在完成任务后,我的进程会被杀死。我计划允许用户在代理上进行配置,并能够在另一个作业或管道中访问它。

有没有一种方法可以在代理上持久化进程?我觉得代理正在杀死清理时创建的每个子进程。我在哪里可以找到这方面的文档?

编辑:我设法找到了这个谈论某个Process.clean变量的线程,但没有更多关于它的信息,也没有找到关于它的文档。

你的感觉是正确的。代理在作业完成时清理派生的进程,这是经过设计的。一台机器上可以有多个代理,多个代理可以并行运行任务。如果你有一台机器,上面有10个代理,他们都同时启动这个过程,会怎么样?

IMO,你的做法令人怀疑。如果您需要在作业之间持久化信息,有很多方法可以做到这一点(例如,包含JSON的输出变量(,而不需要生成在启动它的作业范围之外继续运行的服务。

最新更新