2017-10-19 17 views
1

J'exercerai 2 emplois (MyJob1 et MyJob2) comme ci-dessous:Comment arrêter ou mettre en pause l'emploi Quartz

public async Task<ActionResult> ScheduleJob() 
    { 
     await _jobManager.ScheduleAsync<MyJob1>(
      job => 
      { 
       job.WithIdentity("Job1Identity", "MyGroup") 
        .WithDescription("This is job 1"); 
      }, 
      trigger => 
      { 
       trigger.StartNow() 
        .WithSimpleSchedule(schedule => 
        { 
         schedule.RepeatForever() 
          .WithIntervalInSeconds(5) 
          .Build(); 
        }); 
      }); 

     await _jobManager.ScheduleAsync<MyJob2>(
      job => 
      { 
       job.WithIdentity("Job2Identity", "MyGroup") 
        .WithDescription("This is job 2"); 
      }, 
      trigger => 
      { 
       trigger.StartNow() 
        .WithSimpleSchedule(schedule => 
        { 
         schedule.RepeatForever() 
          .WithIntervalInSeconds(5) 
          .Build(); 
        }); 
      }); 

     return Content("OK, scheduled!"); 
    } 

-> Je l'ai essayé d'utiliser _jobManager .Stoppez() mais il arrête tout mon travail, alors comment arrêter ou mettre en pause seulement MyJob2?

Répondre

3

Utilisez Scheduler.PauseJob comme ceci:

var scheduler = StdSchedulerFactory.GetDefaultScheduler(); 
scheduler.PauseJob(new JobKey("Job2Identity", "MyGroup")); 
+0

je scheduler.PauseJob (nouvelle JobKey ("Job2Identity")); mais ça n'a pas marché, mon frère. Notez que j'utilise AdoJobStore –

+0

['AdoJobStore'] (https://github.com/quartznet/quartznet/blob/2.x/src/Quartz/Impl/AdoJobStore/JobStoreSupport.cs) supporte' PauseJob'. Pouvez-vous essayer avec le nom du groupe dans 'JobKey'? – aaron

+0

J'ai essayé de les mettre à Group1 et Group2 mais cela n'a pas fonctionné. Quelle est la clé de travail signifie, bro –