java
文章平均质量分 81
xian_hui
这个作者很懒,什么都没留下…
展开
-
关于mongoDB插入去重以及高并发问题
关于mongoDB插入去重以及高并发问题最近在项目中碰到过向mongoDB插入数据去重问题。一开始我的想法直接用upsert,我的项目部分代码如下: //使用Upsert进行插入,如果存在就更新,不存在则插入 //根据报告时间和code进行筛选去重 Query query = new Query(); query.addCriteria(Criteria.where("reporttimeStamp").is(meteorologicalDa原创 2021-11-23 15:37:09 · 3671 阅读 · 0 评论 -
用设计模式来替代if-else
前言物流行业中,通常会涉及到EDI报文(XML格式文件)传输和回执接收,每发送一份EDI报文,后续都会收到与之关联的回执(标识该数据在第三方系统中的流转状态)。这里枚举几种回执类型:MT1101、MT2101、MT4101、MT8104、MT8105、MT9999,系统在收到不同的回执报文后,会执行对应的业务逻辑处理。当然,实际业务场景并没有那么笼统,这里以回执处理为演示案例模拟一个回执类@Datapublic class Receipt {/** * 回执信息 */String messa原创 2021-09-09 18:21:06 · 1023 阅读 · 0 评论 -
Spring定时任务@scheduled多线程的使用(@Async注解)
1.开篇在Spring定时任务@Scheduled注解使用方式浅窥这篇文章里面提及过,spring的定时任务默认是单线程的,他在某些场景下会造成堵塞,那么如果我们想让每一个任务都起一条线程去执行呢?2.使用@Async我们可以使用Spring的@Async注解十分容易的实现多线程的任务执行。测试代码:@Scheduled(cron = "0/2 * * * * ?") @Async public void doTask() throws InterruptedExcept转载 2021-05-06 15:21:08 · 660 阅读 · 0 评论