只要有任务做,就可以快速进步,最近接手的一个任务是对各类业务数据进行定时统计,数据量比较庞大,要求短时间内出统计结果。完成任务的过程中,学习到如下知识:
- Spring框架提供的定时Job,使用Quartz框架,参见Spring中Quartz的配置一文。
- 大批量数据的分页查询,需要设置每一次查询的起始位置和页的大小,具体的SQL语句可以按照如下方式写:
SELECT userid
FROM ${tableName}
LIMIT #{start}, #{pageSize}
- 并发编程
- 线程池和ConcurrentHashMap的使用;
ExecutorService pool = Executors.newFixedThreadPool(80);
for (int dbIndex = 0; dbIndex < 11; dbIndex++) {
for (int tableIndex = 0; tableIndex < 11; tableIndex++) {
DealUidRunnable thread = new DealUidRunnable(dbIndex, tableIndex);
pool.execute(thread);
}
}
pool.shutdown();
try {
pool.awaitTermination(2, TimeUnit.HOURS);
} catch (InterruptedException e) {
logger.error("error:", e);
}
- Future的使用,如果希望从异步任务中获取返回值,可以参考:Callable和Future
- 前端相关(工作时候不要挑活,来啥干啥,成长最快)
- Velocity比较容易学
- html绘制表格,学会使用colSpan和rowSpan绘制嵌套的表头