Quartz学习笔记(三)——简易的调度任务监控工具

一个简单的调度任务监控工具,主要是在开发、测试过程中,出现问题时老是去看数据库一来麻烦,二来不够直观。故写了此工具。

点我查看大图

点我查看大图

  • 可切换中/英文

  • 可仅查看绑定有触发器的任务

  • 可点击“附件”查看JobDataMap

  • 触发器目前只支持SimpleTrigger和CronTrigger

  • 在applicationContext.xml中修改成你的数据库即可用

  • 随便写的,没有用Maven,差包的就抱歉啦。有空我会更新成Maven版本

github: https://github.com/wwuddan123/QuartzWatcher

其实代码很简单,就贴一下主要代码吧。

@Repository
public class JobDao {
	@Autowired
	private IJobMapper jobMapper;

	public List<JobEntity> getJobList() {
		List<JobEntity> jobs = jobMapper.getJobList();
		for (JobEntity job : jobs) {
			// 解析数据库的BLOB
			String blob_string = null;
			blob_string = JsonUtil.objToJSONString(getObjectFromBlob(job.getJOB_DATA()));
			job.setJOB_DATA_STRING(blob_string);

			// 获得触发器
			List<BaseTriggerEntity> triggers = jobMapper.getBaseTriggersByJob(job);

			// 遍历triggers,判断trigger类型
			for (BaseTriggerEntity baseTrigger : triggers) {
				if ("SIMPLE".equals(baseTrigger.getTRIGGER_TYPE())) {
					baseTrigger.setRealTrigger(jobMapper.getSimpleTrigger(baseTrigger));
				} else if ("CRON".equals(baseTrigger.getTRIGGER_TYPE())) {
					baseTrigger.setRealTrigger(jobMapper.getCronTrigger(baseTrigger));
				}
			}

			job.setTriggers(triggers);
		}
		return jobs;
	}
    //Blob转Object
	private Object getObjectFromBlob(Object JOB_DATA) {
		byte[] job_data = (byte[]) JOB_DATA;
		InputStream is;
		try {
			is = new BufferedInputStream(new ByteArrayInputStream(job_data));
			ObjectInputStream in = new ObjectInputStream(is);
			try {
				return in.readObject();
			} finally {
				in.close();
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
		return null;
	}
}

 

转载于:https://my.oschina.net/woooooody/blog/1358469

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值