2011-07-18 2 views
1

J'utilise Quartz pour tirer les dernières tâches (d'une autre source), puis les ajoute en tant que travail, crée des déclencheurs, etc. pour chaque tâche. - Facile.Quartz.Net - mettre à jour/supprimer des travaux/triggers

Cependant, parfois les tâches changent (elles existent donc déjà). Par conséquent, je voudrais changer son (disons de rester simple Description. Code de mise à jour ci-dessous la description de tâche spécifique avec la date donnée.

private static void SetLastPull(DateTime lastPullDateTime) 
{ 
    var lastpull = sched.GetJobDetail("db_pull", "Settings"); 

    if(lastpull != null) 
    { 
    lastpull.Description = lastPullDateTime.ToString(); 
    } 
    else 
    { 
    var newLastPull = new JobDetail("db_pull", "Settings", typeof(IJob)); 
    newLastPull.Description = lastPullDateTime.ToString(); 
    var newLastPullTrigger = new CronTrigger("db_pull", "Settings", "0 0 0 * 12 ? 2099"); 
    sched.ScheduleJob(newLastPull, newLastPullTrigger); 
    } 
} 

Je suppose après je lastpull.Description = lastPullDateTime.ToString(); je devrais appeler quelque chose pour enregistrer les modifications à la base de données Y at-il un moyen de le faire dans Quartz ou dois-je utiliser d'autres moyens et le mettre à jour?

+0

A travaillé. Je devais aller 'sched.AddJob (lastpull, true)'. Très contre-intuitif. – Luke

Répondre

4

Vous ne pouvez pas modifier (mettre à jour) un travail une fois qu'il a été planifié. -schedule (avec les modifications que vous voudrez peut-être faire) ou supprime-le et en crée un nouveau