Как отключить задания cron в dropwizard - PullRequest
0 голосов
/ 14 мая 2018

У меня есть несколько заданий Dropwizard, которые выполняются в запланированное время, но я хочу предоставить администратору возможность включать и отключать их во время выполнения. Есть ли простой способ сделать это с помощью dropwizard? Есть ли что-то, что я могу сделать, чтобы проще отключить этот вид работ, не вводя свойства / переключатели.

  import de.spinscale.dropwizard.jobs.Job;
  import de.spinscale.dropwizard.jobs.annotations.On;

  @On("${someJob}")
  public class MyJob extends Job {
        @Override
         public void doJob(JobExecutionContext context) {
             // do stuff...
         }
     }

1 Ответ

0 голосов
/ 29 августа 2018

Да, вы можете сделать это с этими конечными точками:

@POST
@Path("/my-job")
public void enableJob() throws SchedulerException {
    JobDetail jobDetail = JobBuilder.newJob(MyJob.class).build();
    jobManager.getScheduler().addJob(jobDetail, false);
}

@DELETE
@Path("/my-job")
public void disableJob() throws SchedulerException {
    JobDetail jobDetail = JobBuilder.newJob(MyJob.class).build();
    JobKey jobKey = JobKey.jobKey(MyJob.class.getCanonicalName());
    jobManager.getScheduler().deleteJob(jobKey);
}

JobManager здесь тот, который вы даете Dropwizard с

environment.lifecycle().manage(jobManager);
...