Как я могу проверить, выполняется ли задание таймера SharePoint в настоящее время на одном из WFE? (программно конечно).
Проверьте, выполняется ли в данный момент задание таймера SharePoint
Ответы (4)
Возможно, вам придется изучить историю работы. пожалуйста, взгляните на эти ссылки.
https://sharepoint.stackexchange.com/questions/32968/timer-job-programmatically-check-status
person
Raheel
schedule
26.08.2012
Я создал консольное приложение и попытался добавить некоторый код, но не уверен, что он соответствует вашим требованиям:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.SharePoint;
using Microsoft.SharePoint.Administration;
namespace SPTimerServices
{
class Program
{
static void Main(string[] args)
{
const string MY_SERVER = "spsvr";
var services = SPFarm.Local.Services;
foreach (SPService service in services)
{
if (service is SPWebService)
{
var webService = (SPWebService)service;
foreach (SPWebApplication webApp in webService.WebApplications)
{
foreach (SPJobDefinition job in webApp.JobDefinitions)
{
// Match with our server
if (job.Server != null && string.Compare(job.Server.Address, MY_SERVER, true) == 0)
{
// Console.WriteLine(job.Name);
foreach (var e in job.HistoryEntries)
{
if (e.Status == SPRunningJobStatus.Initialized)
{
Console.WriteLine(job.Name);
}
}
}
}
}
}
}
Console.WriteLine("Press any key to continue...");
Console.ReadLine();
}
}
}
person
Amit Bhagat
schedule
25.08.2012
Он просто находит определение работы, но не говорит, каков его текущий статус. Это не обязательно в настоящее время работает ...
- person Roy Reznik; 26.08.2012
Приведенный выше код не работает, он находит только завершенные и прерванные задания (отсюда и «История»)
Далее выполняется проверка запущенных заданий:
if (webapp.RunningJobs.Cast<SPRunningJob>().Any(curRunningJob => curRunningJob.JobDefinitionTitle.Equals(jobTitle)))
из http://shareatsharepoint.blogspot.in/2012/11/finding-running-sharepoint-timer-job.html
person
Robbert Nijhoff
schedule
12.06.2013
Использование PowerShell
CLS
Get-SPWebApplication | ForEach-Object {
$_.WebService.RunningJobs | select JobDefinitionTitle,ServerName,
StartTime,PercentageDone,status | Format-Table -autosize}
person
arjuna p
schedule
04.08.2014