SPRunningJob class
Um objeto de trabalho em execução é criado para cada instância do trabalho que está em execução, a taxa de um por servidor.
Inheritance hierarchy
System.Object
Microsoft.SharePoint.Administration.SPRunningJob
Namespace: Microsoft.SharePoint.Administration
Assembly: Microsoft.SharePoint (in Microsoft.SharePoint.dll)
Syntax
'Declaração
<SharePointPermissionAttribute(SecurityAction.LinkDemand, ObjectModel := True)> _
<SharePointPermissionAttribute(SecurityAction.InheritanceDemand, ObjectModel := True)> _
Public NotInheritable Class SPRunningJob
'Uso
Dim instance As SPRunningJob
[SharePointPermissionAttribute(SecurityAction.LinkDemand, ObjectModel = true)]
[SharePointPermissionAttribute(SecurityAction.InheritanceDemand, ObjectModel = true)]
public sealed class SPRunningJob
Comentários
Se o trabalho em execução está ativo em pelo menos um servidor no farm, ela é marcada como ativa.
Um trabalho único que é concluída com êxito é excluído da tabela de trabalhos em execução. Sua definição de trabalho também será excluída.
Examples
O exemplo de código a seguir itera através os serviços em um farm de SharePoint Foundation para exibir informações sobre cada trabalho atualmente em execução para cada serviço. Para objetos de SPRunningJob , toda a interação através de programação é com propriedades; Há métodos no objeto SPRunningJobCollection que permitem que o implementador interajam com uma instância específica de um objeto 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);
}
}
Thread safety
Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.
Ver também
Referência
Microsoft.SharePoint.Administration namespace
Outros recursos
Criando trabalhos de Timer personalizado no Windows SharePoint Services 3.0