“由于负载过重,最新的工作流程已经排队” - >如何查看队列?

时间:2011-03-02 12:31:12

标签: c# powershell sharepoint-2010 queue timer-jobs

我知道Sharepoint计时器作业(OWSTIMER)将工作流程执行排队 - 我只想查看此队列!我想在这个不祥的队列中看到下一个工作流程。

通过PowerShell /控制台应用程序/管理中心检查工作流队列的任何方法吗?

1 个答案:

答案 0 :(得分:2)

SPTimerJobAdmin项目http://sptimerjobadmin.codeplex.com/看起来提供了您所要求的内容,虽然它似乎专门用于2007年的产品,所以我不能说它在2010年会做什么,但也许它可以指向你在正确的方向和2010年的更新不应该太难,这是一个相当小的项目。

到目前为止,使用C#或PowerShell查询计时器作业,您可以在SPFarm类中找到所需内容(您需要添加对Microsoft.SharePoint.Administration命名空间的引用或完全限定班级名称)。您可以非常轻松地迭代这些作业:

var farm = Microsoft.SharePoint.Administration.SPFarm.Local;
foreach (var job in farm.TimerService.JobDefinitions)
{
  // check what you want from each job
  // Typical Properties: Schedule, Title, LastRunTime, TypeName, Status
}

在PowerShell中类似:

# Load the SharePoint assembly if necessary
PS C:\> [System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint")
PS C:\> $farm = [Microsoft.SharePoint.Administration.SPFarm]::Local
PS C:\> $farm.TimerService.JobDefinitions | select Title,LastRunTime,Status