java - 如何在 dropwizard 中禁用 cron 作业
问题描述
我有一些在预定时间运行的 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...
}
}
解决方案
是的,您可以使用这些端点来做到这一点:
@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);
推荐阅读
- html - 为什么:svg的悬停选择器在放置在div中时不起作用
- nginx - 1#1:此处不允许使用“事件”指令
- java - 动态 JAXB/MOXy 编组抛出 MOXy BV:无法配置构面生成
- java - 每次用户登录时,我都想从 firebase 中随机检索数据
- python - Julia函数在python类中运行julia方法
- multithreading - 线程python中的只读numpy数组
- javascript - 使用 module.exports 从模块中导出异步操作获得的数据
- reactjs - 如何使用带有 React JS 的 dc.js 在具有多个维度的行图中显示多个列值
- python - 你如何检查用户输入python中字符串后面的整数是什么?
- java - Apache Beam:Java:使用 TextIO.write() 中的变量将结果写入多个文件