Best Practices für die Bereitstellung von Timer jobs in der Server-Farm-Umgebungen mit mehreren WFE
ich habe ein timer-job, die ich ausführen möchten, die nur einmal pro Tag, für die gesamte farm. Wie kann ich
- Bereitstellung in einem mehrere WFE Umgebung? Führe ich den Befehl stsadm-o deploysolution-Befehl in jedem WFE, oder nur der eine wo ich will das es läuft?
- Wo sollte ich das feature aktivieren? Sollte es nur aktiviert werden, von einem bestimmten WFE?
- Was sollte der Wert der SPJobLockType.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es sieht aus wie Sie brauchen ein farm-scoped feature, dass einen Dienst installiert, der läuft diesen job. Hier ist, wie ich es gemacht habe (mit code, geschrieben von einem Kollegen, um ehrlich zu sein, aber er ist nicht SO).
Erstellen feature.xml Datei mit einem feature-event-receiver.
Innerhalb des Ereignis-Empfänger:
Dies schafft einen service auf jedem server in der farm.
Einige weitere details, auf die Unterklassen:
...
und natürlich die Execute-Methode.
Nun, in der Central Admin, gehen Sie zu Operationen /Dienste auf dem server. Wählen Sie den gewünschten server, und starten Sie den Dienst.
Zur Beantwortung Ihrer Fragen:
1. Implementieren Sie die Lösung nur einmal, unabhängig von einem WFE.
2. Wie die feature -, farm-scoped, es sollte aktiviert werden, in der zentralen Verwaltung.
3. Die SPJobLockType ist SPJobLockType.Job
Dies ist nicht genau das, was du dir vorgestellt hast, aber es hat den Vorteil, dass Sie leicht entscheiden, wo der Auftrag ausgeführt wird, auch lange nachdem Sie das feature installieren (z.B. wenn ein server überlastet ist mit anderen Sachen).
Den OnFeatureActivated Methode könnte klüger sein, und überprüfen Sie für jeden server, wenn der service vorhanden ist, und fügen Sie es, wenn nötig. Aber es ist einfacher zu entfernen, den Dienst von jedem service, der in OnFeatureDeactivated. Also, wenn Sie neue Server hinzufügen, deaktivieren, reaktivieren Sie die Funktion.