Класс SPRunningJob
Для каждого экземпляра задания, которое выполняется со скоростью один на каждый сервер создается объект выполнение задания.
Иерархия наследования
System.Object
Microsoft.SharePoint.Administration.SPRunningJob
Пространство имен: Microsoft.SharePoint.Administration
Сборка: Microsoft.SharePoint (в Microsoft.SharePoint.dll)
Синтаксис
'Декларация
<SharePointPermissionAttribute(SecurityAction.LinkDemand, ObjectModel := True)> _
<SharePointPermissionAttribute(SecurityAction.InheritanceDemand, ObjectModel := True)> _
Public NotInheritable Class SPRunningJob
'Применение
Dim instance As SPRunningJob
[SharePointPermissionAttribute(SecurityAction.LinkDemand, ObjectModel = true)]
[SharePointPermissionAttribute(SecurityAction.InheritanceDemand, ObjectModel = true)]
public sealed class SPRunningJob
Замечания
Если выполняющегося задания активна по крайней мере на одном сервере в ферме, его помечается как активный.
Разовое задание, которое выполняется успешно удален из таблицы выполнения заданий. Также удаляется его определение задания.
Примеры
В следующем примере кода выполняется итерация по служб на ферме SharePoint Foundation для отображения сведений о каждое задание, которое выполняется в данный момент для каждой службы. Для объектов SPRunningJob все программного взаимодействия — это со свойствами; методы доступны в объекте SPRunningJobCollection , позволяющие разработчику взаимодействуют с экземпляром определенного объекта SPRunningJob .
[C#]
SPFarm farm = SPFarm.Local.Farm;
SPServiceCollection services = SPFarm.Local.Services;
int rand_job;
Guid jobdefid;
SPRunningJob rj;
string servername;
string svc_name = string.Empty;
foreach (SPService service in services) {
SPRunningJobCollection runningJobs = service.RunningJobs;
if (runningJobs.Count > 0) {
if (svc_name == string.Empty) {
svc_name = service.Name;
}
Console.WriteLine("****Job Collection Count is " + runningJobs.Count);
Console.WriteLine("****Job Collection Parent is " + runningJobs.Parent);
Console.WriteLine("****Job Collection Service is " + runningJobs.Service);
Console.WriteLine("****Job Collection Web App is " + runningJobs.WebApplication);
// For the GetInstance method, save off job information at random
rand_job = runningJobs.Count / 2;
Console.WriteLine("****Collection member " + rand_job + " is " + runningJobs[rand_job].JobDefinition);
jobdefid = runningJobs[rand_job].JobDefinitionId;
servername = runningJobs[rand_job].ServerName;
}
else {
jobdefid = Guid.Empty;
servername = null;
}
foreach (SPRunningJob runningJob in runningJobs) {
Console.WriteLine("****Job Definition is " + runningJob.JobDefinition);
Console.WriteLine("****Job Id is " + runningJob.JobDefinitionId);
Console.WriteLine("****Job Title is " + runningJob.JobDefinitionTitle);
Console.WriteLine("****Parent is " + runningJob.Parent);
Console.WriteLine("****Percentage Done is " + runningJob.PercentageDone);
Console.WriteLine("****Server Name is " + runningJob.ServerName);
Console.WriteLine("****Service Id is " + runningJob.ServiceId);
Console.WriteLine("****Start Time is " + runningJob.StartTime);
Console.WriteLine("****Status is " + runningJob.Status);
Console.WriteLine("****Web App Id is " + runningJob.WebApplicationId);
Console.WriteLine("****");
}
if (jobdefid != Guid.Empty) {
// random jobdef from collection
// getinstance method
rj = runningJobs.GetInstance(jobdefid, servername);
Console.WriteLine("*@@* Job Definition is " + rj.JobDefinition);
Console.WriteLine("*@@* Job Id is " + rj.JobDefinitionId);
Console.WriteLine("*@@* Job Title is " + rj.JobDefinitionTitle);
}
}
Потокобезопасность
Любые общедоступные элементы static (Shared в Visual Basic) этого типа являются потокобезопасными. Не гарантируется, что любые элементы экземпляров потокобезопасны.
См. также
Справочные материалы
Пространство имен Microsoft.SharePoint.Administration
Другие ресурсы
Создание задания таймера, настраиваемых в Windows SharePoint Services 3.0