【问题标题】:PowerShell task to run Background Job (Start-Job)运行后台作业的 PowerShell 任务 (Start-Job)
【发布时间】:2019-02-01 18:05:00
【问题描述】:

我尝试在 PowerShell VSTS Task TFS 2018.1 OnPrem 中运行 Start-Job

我使用Receive-Job 测试该脚本开始运行。 当任务退出时,脚本停止。

在 PowerShell 任务中,我运行以下命令:

Start-Job -FilePath "C:\build\BGGetFromNuGet.ps1" -ArgumentList "C:\build"

任务完成后,该脚本是否有可能继续在后台运行? 我唯一的选择是使用计划任务吗? 该脚本正在下载构建的最新阶段所需的大量数据。

【问题讨论】:

  • 你忘了问你的问题。有什么不工作吗?它究竟有多“不工作”(即你期望什么结果,你实际得到什么结果)?
  • 问题很清楚——在VSTS构建中,当PowerShell任务完成运行后台作业时也会停止(我认为你需要在标题上返回VSTS)。
  • 请停止在您的问题主题中添加标签。
  • @AnsgarWiechers 问题是关于 VSTS PowerShell 任务的——(你可以在这里看到它:docs.microsoft.com/en-us/vsts/pipelines/tasks/index?view=vsts),不仅仅是 Powershell 任务,还是 VSTS 任务。
  • @ShaykiAbramczyk 它被正确标记为 tag:vsts。标签不属于主题。有人可能会争辩说,主题应该是“VSTS task to ...”而不是“PowerShell task to ...”,但是对主题进行标记式添加是不行的。

标签: powershell tfs azure-devops azure-pipelines azure-pipelines-build-task


【解决方案1】:

使用start-process 命令启动脚本。这将确保启动的作业在任务完成后继续运行。但是构建完成后,作业将被关闭。

Start-Process powershell.exe -ArgumentList '-file C:\build\BGGetFromNuGet.ps1'

【讨论】:

    【解决方案2】:

    您可以构建一个简单的 api 应用程序来运行这些作业,然后在构建/发布期间将 API 请求发送到该应用程序以运行这些作业。

    【讨论】:

      猜你喜欢
      • 2015-11-05
      • 1970-01-01
      • 1970-01-01
      • 2011-04-25
      • 2013-11-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多