mcitpsa
Goto Top

C-Sharp Probleme mit Scheduled Task

Hallo Gemeinde,

heute wende ich mich einmal mit einer C# Frage an euch und hoffe das zumindest diese beantwortet werden kann ...

Ich erstelle mittels C# und dem TaskSchedulerWrapper einen Task der zu ziet x laufen soll.
Mitgeben möchte ich das der Task nach 1 Stunde expired und dann nach einer weiteren Stunde deleted wird.

Der Task wird derzeit erstellt, nur wenn ich mir den Task dann ansehe, hat er in den Einstellungen auch stehen das er 1 Stunde später expired aber die erste Ausführung erst nach dem expiren stattfinden soll face-sad

Hier mal mein Codeschnipsel dazu:
TaskDefinition td = ts.NewTask();
td.RegistrationInfo.Description = "Eine Beschreibung";  
td.Principal.LogonType = TaskLogonType.InteractiveToken;

TimeTrigger tt = new TimeTrigger();
tt.StartBoundary = Convert.ToDateTime(DateTime.Now + TimeSpan.FromHours(1));
tt.EndBoundary = Convert.ToDateTime(DateTime.Now + TimeSpan.FromHours(1));

td.Settings.DeleteExpiredTaskAftre = new TimeSpan(1,0,0);
td.Triggers.Add(tt);
td.Actions.Add(new ExecAction("Mein befehl"));  

//Register Task in RootFolder
ts.RootFolder.RegisterTaskDefinition(@"Mein Task",td,TaskCreation.Create,HttpContext.Current.User.Identity.Name,null);  

Wie bereits gesagt der Task wird sauber erstellt.
Lasse ich den "DeleteExpired" part weg, wird der Task regulär auch ausgeführt und richtig angezeigt.
Mit dem aktive "DeleteExpired" sieht der Task dann in etwa so aus:

Name | Status | Triggers | Next Run Time |....
Task | Ready | At 16:17 on 29.05.2013 - Trigger expires @ 29.05.2013 17:12:00 | 29.05.2013 18:17

Weiß hier jemand eine Lösung?!?

Viele Grüße,
MCITPSA

Content-ID: 207233

Url: https://administrator.de/contentid/207233

Ausgedruckt am: 25.11.2024 um 19:11 Uhr

MCITPSA
MCITPSA 04.06.2013 um 09:09:11 Uhr
Goto Top
Hallo alle zusammen,
da mir bis jetzt leider niemand einen Hinweis geben konnte und es mich gefuchst hat das "problem" zu lösen, bin ich nun auf eine Lösung selbst gekommen.
Für alle die ggf. auch mal dieses "Phänomen" haben kommt nun hier meine Lösung.
TaskDefinition td = ts.NewTask();
td.RegistrationInfo.Description = "Eine Beschreibung";   
td.Principal.LogonType = TaskLogonType.InteractiveToken;

TimeTrigger tt = new TimeTrigger();
DateTime d1 = DateTime.Now;
DateTime d2 = d1.AddHours(2);
tt.StartBoundary = Convert.ToDateTime(DateTime.Now + TimeSpan.FromHours(1));
tt.EndBoundary = d2;

td.Settings.DeleteExpiredTaskAftre = new TimeSpan(1,0,0); 
td.Triggers.Add(tt); 
td.Actions.Add(new ExecAction("Mein befehl"));   

//Register Task in RootFolder 
ts.RootFolder.RegisterTaskDefinition(@"Mein Task",td,TaskCreation.Create,HttpContext.Current.User.Identity.Name,null);  
Viele Grüße,
MCITPSA