SPRunningJob-Klasse
Ein aktives Jobobjekt wird für jede Instanz des Auftrags erstellt, die ausgeführt wird, mit einer Rate von jeweils eine pro Server.
Vererbungshierarchie
System.Object
Microsoft.SharePoint.Administration.SPRunningJob
Namespace: Microsoft.SharePoint.Administration
Assembly: Microsoft.SharePoint (in Microsoft.SharePoint.dll)
Syntax
'Declaration
<SharePointPermissionAttribute(SecurityAction.LinkDemand, ObjectModel := True)> _
<SharePointPermissionAttribute(SecurityAction.InheritanceDemand, ObjectModel := True)> _
Public NotInheritable Class SPRunningJob
'Usage
Dim instance As SPRunningJob
[SharePointPermissionAttribute(SecurityAction.LinkDemand, ObjectModel = true)]
[SharePointPermissionAttribute(SecurityAction.InheritanceDemand, ObjectModel = true)]
public sealed class SPRunningJob
Hinweise
Wenn der ausgeführte Auftrag auf mindestens einem Server in der Farm aktiv ist, wird es als aktivgekennzeichnet.
Ein einmaliger Auftrag, der erfolgreich abgeschlossen wird, wird aus der Tabelle der ausgeführten Aufträge gelöscht. Die Auftragsdefinition wird ebenfalls gelöscht.
Beispiele
Im folgenden Codebeispiel wird durchlaufen und die Dienste in einer Farm SharePoint Foundation , um Informationen zu jedem Auftrag anzuzeigen, die derzeit für jeden Dienst ausgeführt wird. SPRunningJob -Objekte werden alle programmgesteuerte Interaktion mit Eigenschaften. Methoden stehen zur Verfügung, in das SPRunningJobCollection -Objekt, das die Implementierung für die Interaktion mit einer bestimmten Instanz eines SPRunningJob -Objekts zuzulassen.
[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);
}
}
Threadsicherheit
Alle öffentlichen static (Shared in Visual Basic) Member dieses Typs sind threadsicher. Die Threadsicherheit von Instanzmembern ist nicht gewährleistet.
Siehe auch
Referenz
Microsoft.SharePoint.Administration-Namespace
Weitere Ressourcen
Erstellen von benutzerdefinierten Zeitgeberaufträgen in Windows SharePointServices 3.0