定时查询DB记录返回条数和耗时

本文介绍了一个需求,即通过脚本实现DB查询并记录返回条数和耗时。内容涵盖了一次查询和定时查询的实现,其中定时查询利用了Quartz Scheduler。在查询超时时,通过自定义timeout机制避免程序卡住。查询结果存储于CSV文件,对于定时查询,每次结果追加到文件中。
摘要由CSDN通过智能技术生成

我接到一个需求,要用脚本来查询DB并记录返回条数和耗时。脚本要能做到一次查询,和定时查询。工具配置文件里定义好query和执行次数,每个query执行这么多次后,计算出一个平均耗时。

  • 一次查询的话结果写入csv文件,结束。
  • 定时查询的话,用户定义好时间点,每天的这个时候开始查询,每次结果append到csv文件里
  • 另外给用户一个timeout setting,有时候某个表正在刷新,或者有问题,那么query的时候就需要很久很久都不会返回结果,整个工具就会卡住。所以根据用户的timeout setting,如果一个query超过10分钟还没有返回,结果里记录timeout然后接着跑下一个query

一次查询的话,非常简单。

定时查询的话,用到了org.quartz-scheduler。

第一步,定义一个自己的job类来实现Job接口的execute()方法,这个方法定义了每次执行job的具体步骤。参数JobExecutionContext context非常有用,通过它可以拿到job details还有要传递给job的参数(JobDataMap)。

 public class MyOwnJob implements Job 
{
    public void execute(JobExecutionContext context) throws JobExecutionException 
    {
    	...
    }
}
JobDataMap datamap = paramJobExecutionContext.getJobDetail().getJobDataMap();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值