出于维护目的,我曾经为TFS 2010实现了“优雅重启”脚本。需要进行这样的重新启动,以便为服务器提供安装补丁的机会。但是,当“build”或“Backups”当前正在运行时,我们可能无法重启服务器。
因此,在重新启动TFS服务器之前,我做了一个脚本来禁用所有TFS服务(源代码控制,构建,备份计划)并等待当前正在运行的所有构建和备份任务的完成。
要等待“备份任务”完成,我以编程方式监视由TFS Power Tools 2010创建的Windows计划任务:TfsDeleteOldBackup TfsDifferentialBackup TfsFullBackup TfsTransactionalBackup。
由于我们已迁移到TFS 2013,“备份计划向导”不再创建此类Windows计划任务...所以,我想知道如何在TFS 2013中检查现在没有备份任务目前正在以编程方式运行和禁用它们?!
有什么想法吗?我没有看到这些任务的定义和执行位置......
答案 0 :(得分:4)
自TFS 2012以来,备份作业已重新实施为TFS代理作业。 您可以通过tfs客户端对象模型访问所需的信息:
var tfsConfigServerUri = new Uri(String.Format("http://localhost:8080/tfs"));
var tfsConfigServer = TfsConfigurationServerFactory.GetConfigurationServer(tfsConfigServerUri);
var jobService = tfsConfigServer.GetService<ITeamFoundationJobService>();
foreach(var job in jobService.QueryJobs())
{
...
}