Benjamins Blog

Benjamin Wegner über Weisheiten, SharePoint und IT Zeugs

Benjamins Blog header image 2

TimerJob Intervall

Juli 23rd, 2009 ·


Bei einem TimerJob muss man sich zuerst festlegen, in welchem groben Zyklus der TimerJob läuft.


Alles Quatsch… wenn man extern festlegen möchte, wann der Timerjob läuft, dann den TimerJob wie folgt anlegen:


http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.spschedule.fromstring.aspx


Das Ganze würde dann so aussehen, wobei in der Property z.B. folgendes steht: „daily between 03:00:00 and 3:30:00″ oder „every 15 minutes between 0 and 59″



// initialize the job
SPSchedule schedule = SPSchedule.FromString(properties.Feature.Properties[„SPScheduleString“].Value);


// update
myTimerJob.Schedule = schedule;
myTimerJob.Update();


Mögliche Zyklen sind:
SPWeeklySchedule, SPDailySchedule, SPMonthlySchedule, SPYearlySchedule, SPHourlySchedule, SPMinuteSchedule.Diese Zyklen sind im Code hinterlegt und können nicht konfiguriert werden.
Innerhalb dieser Zyklen kann dann wiederum definiert werden, in welchem Intervall der Job läuft.


Beispiel:


SPMinuteSchedule
Intervall: 0-59


SPHourlySchedule
Intervall: 0-24


usw.


Der Intervall ist eine Eigenschaft, die extern hinterlegt und konfiguriert werden kann.


Höhere Werte sind nicht möglich, bzw. bewirken dass der TimerJob überhaupt nicht läuft.
Es ist deshalb nicht möglich, z.B. einen SPMinuteSchedule als Basis zu nehmen und diesen einmal täglich laufen zu lassen.


Alternativ kann ein TimerJob z.B. über ein PowerShell Script oder eine STSADM Extension manuell gestartet werden:
http://www.sharepointblogs.com/teameli/archive/2008/10/02/powershell-script-start-custom-timer-job-out-of-schedule.aspx

Tags: Allgemein