"deferred wipeout" 选项在 Jenkins Workspace Cleanup 插件中的真正含义是什么?

What does "deferred wipeout" option really mean in Jenkins Workspace Cleanup plugin?

Jenkins Workspace Cleanup 插件是一个广泛使用的插件,在过去 12 个月中每月安装超过 20 万次。

困扰我的是它的“延迟擦除”功能没有正确记录。我只能怀疑“延迟”意味着异步,因此它不会阻塞 node/executor,但我现在正在猜测。

此外,如果它实际上是异步的,并且另一个作业被安排在同一个节点和同一个工作空间上,我们是否可以保证在新作业开始之前正确清理工作空间?

文档只说:

When deferred wipeout is disabled the old implementation of filesystem content deletion is used. (...)

For developers of (cloud, for instance) it might be useful to be sure deferred wipeout is never selected as a cleanup method.

这是什么意思?哪些场景不应该使用延迟擦除?

任何人都可以解释一下使用此选项 enabled/disabled 的实际效果是什么,可能对某些用例有影响吗?

延迟擦除意味着删除异步发生到您的构建,即:

  1. 将工作区目录重命名为临时目录名称,然后
  2. 启动一个后台任务来删除那个临时目录。

(详见source code)。

对于大型工作区,删除可能需要很长时间,因此这将减少构建时间。

当 运行 并行构建同一个作业的多个版本时,Jenkins 会自动 select build-specific 工作区名称(通过向工作区目录添加数字扩展名)——所以有不干扰异步删除。

在创建和删除临时构建节点的云环境中 on-demand,您可能会破坏仍然是 运行 异步删除操作的节点,因此您可能更愿意禁用在这种情况下的选项。