Frage

Ich habe eine Sharepoint 2010-App geschrieben, die eine TimerJob zu Trigger Verarbeitung von einigen Dokumenten in einer Liste verwendet. Der Timer wird einmal pro Minute auslösen, aber das kann die Verarbeitung mehr als eine Minute dauern. Ich frage mich nur, wenn der nächste Auslöser des Zeitgeberauftrages wird mit einem neuen Thread gestartet werden, oder es wird der Timer-Dienst nur warten, bis der erste Thread abgeschlossen hat. Ich habe keine Ahnung, wie Sharepoint-Threads für TimerJobs verwaltet und ich kann nicht wirklich alle relevanten Informationen finden.

Dies ist möglicherweise ein Problem gegeben, dass meine TimerJob Definition Folgendes:

 public override void Execute(Guid contentDbId)
    {
        try
        {
            SPWebApplication webApplication = this.Parent as SPWebApplication;
            SPContentDatabase contentDb = webApplication.ContentDatabases[contentDbId];
            using (SPSite site = contentDb.Sites[0])
            {
                using (SPWeb web = site.RootWeb)
                {                       
                    PRManager.TriggerProcessing(web);    // ?                   
                }
            }
        }                      
        catch (Exception)
        { 
        }
    }
}

Die PRManager.TriggerProcessing() ist eine statische Methode, natürlich, und während es Mechanismen enthält nur ein Thread zu einem Zeitpunkt, zu begrenzen, die Methode Körper eindringen, ich frage mich nur, ob Sharepoint mehr Threads im Fall schafft, dass diejenigen in Minuten -interval Anrufe ausführen überlappen.

War es hilfreich?

Lösung

Nun, es ist nicht so sehr ein „Faden“, was so viel wie es eine „Job“ Sache ist.

speichert Sharepoint alle Aufträge in einer Datenbanktabelle und verwendet diese Tabelle zu verfolgen, was läuft und wo es ausgeführt wird. Es wurde ein in Synchronisierungs-Engine eingebaut, die für dafür, dass die Aufträge ausführen, wie die Arbeitsanweisungen sagen verantwortlich ist.

  

Zum Beispiel nimmt die Bereitstellung fragen   Das ist nichts anderes als ein Job. Das   Aufgabe Remote-Installation kann nur ein Job   läuft für eine bestimmte Lösung zu einem Zeitpunkt.   Es stellt sicher, dass alle Aufgaben   Abschluss auf jedem Server in der Farm   bevor die gesamte Arbeit wird berichtet, wie   getan.

Die Antwort hängt davon ab, wie Sie Ihre Job-Konfigurationseigenschaften festgelegt werden. Es ist eine Eigenschaft auf diesen Job, die Sharepoint nur erzählt, um eine Instanz dieser Arbeit zu ermöglichen zu einem Zeitpunkt ausgeführt werden. Also, wenn der Job gerade eine andere Instanz davon Ausführung wird nicht gestartet werden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top