一切都是最好的安排

【项目实战】 -- 匿名内部类实现多线程操作

接上一篇【项目实战】 -- interface接口什么情况下可以被new? 起初,在执行task-历史消息归档任务时,使用匿名内部类实现了LoopCall的方法。其中processPageData方法中,对历史消息进行了多线程处理。 @Override public void execu...

2019-08-19 15:43:54

阅读数 44

评论数 0

【项目实战】 -- interface接口什么情况下可以被new?

在项目中,看别人代码,发现一种写法,如下: @Override public void execute(TaskContext ctx) { logger.info("开始历史消息归档任务"); Date minTime = TimeUtil.minusDay(...

2019-08-19 14:13:23

阅读数 50

评论数 0

【bug】 -- Push项目的log优化RecordNotExistException()

现象: 日常维护系统过程中,发现log中经常出现因RecordNotExistException()打印出的stacktrace,并没有出现业务上的问题,但是容易混淆视线,而且占用内存。组长就让排查下这个log存在的意义,是否是业务上的正常case。以进行后续的优化。 排查: 经查发现,...

2019-08-13 15:55:14

阅读数 17

评论数 0

【bug】 -- List.subList()未序列化导致Redis报错

别人遇到的bug,收集起来以防自己同样犯错。 bug产生的场景: 项目中对文章的详情内容通过Redis做了缓存,详情中以List形式关联了一些其他内容。在Redis中存储数据也将会是从业务中获取的List集合。存储数据要求3条即可,但是查询接口返回的数据不一定为3条,当多于3条是,就需要截取,...

2019-07-03 16:16:54

阅读数 103

评论数 1

【坑】-- 传入参数使用包装类时为空报错

两次踩坑,问题虽小,值此一记。 分析: 报以上问题,单看日志定位不到具体的实现方法,判断controller中的96行,发现传入的movieId为null,虽然使用注解@RequestParam标志该入参为 @RequestParam(value = "movieId"...

2019-07-03 10:34:34

阅读数 73

评论数 1

【坑】-- URL中含特殊字符导致后端无法正常传入参数

问题:前端URL中由于jsApis这个参数拼接了#,导致后端无法识别获得第一个#之后的所有字符,进而导致debug这个参数也没办法被识别。所以后端接收参数错误,无法正确返回数据,显示400异常。 解决:进行符号转义。 查询百度解决方案:url参数中出现+、空格、=、%、&、...

2019-06-27 15:37:11

阅读数 203

评论数 0

【坑】-- postman请求无返回结果

前端post或者get请求我后端失败,但是我本地测试是成功的。前端不知道怎么回事,但是感觉也不是后端的问题。 以下无论是get还是post,我本地请求均正常, 而且我通过域名在浏览器中访问也是可以的。 但是通过postman使用域名访问确定是不行的。如下。于是开始怀疑自己。 展...

2019-06-27 15:22:51

阅读数 807

评论数 0

【项目实战-测试环境】-- api返回XML格式数据而不是json

问题描述: 如图 正常格式: 原因:分支合并过程中导致jar包冲突 解决:依赖中排除冲突的包

2019-06-21 17:02:57

阅读数 70

评论数 0

【项目实战】-- 分布式事务的应用(一)

处理方式最多的大概就是保证数据的最终一致性吧。 在我们的业务系统中,缓存(Redis或者Memcached)通常被用在数据库之前,作为数据读取的缓冲,使得I/O操作不至于直接落在数据库上,造成很大的压力。 在我们的系统中相当于做了两层缓存。首先通过创建任务,将服务端提供的一些可静态化的基础数据...

2019-06-14 16:39:54

阅读数 80

评论数 0

【Git】-- ssh和https

ssh使用突然出现了问题,但是自己又忘了当时怎么配置的ssh的了,只能不停的找 解决方案,看能不能瞎猫碰上死耗子 哎。 https://blog.csdn.net/yym836659673/article/details/77504430,这篇博主给了三种方案 https://jingyan....

2019-05-10 16:09:00

阅读数 23

评论数 1

【项目实战】-- redis的使用(一)

1.批量获取缓存 stringList = redisClient.invoke(t -> t.hmget(CACHE_KEY_DOMAIN_ITEM, Converter.toStringArray(keys))); 2.加入缓存 JsonDetailInfo jsonD...

2019-05-07 15:21:06

阅读数 61

评论数 0

【项目实战】-- 报警处理

以上报警邮件的检查方式: 1.http://10.10.10.218:4171/ 在nsq的topic中心搜索主题名称 2.点进去查看,Depth即为目前未处理的消息,现在为0,说明堆积是临时性现象,随着推送的消息处理器消化即可解决。 3.为了减少报警邮件,将对消息报警条数加以调整,将原...

2019-05-05 15:05:26

阅读数 73

评论数 0

【项目实战】-- 线上问题1

1.问题 : APP正常运行,PC端无法访问 排查: 发现swirl下的频道页相关内容中有一个标红,标红项目为给频道页前端Node.js提供api接口的站点。可能因为某些特殊原因导致掉线,但没有重启成功。 解决方案:Max attempts,是原值为3,意思是累计意外宕机3次后,该服务...

2019-05-05 14:41:41

阅读数 28

评论数 0

【JAVA基础】 -- Map常见问题(二)

项目中见到同事使用Map的一个方法,之前没用过,便一探究竟。 通常我们使用较多的为map.put()方法。还有另一个putIfAbsent. absent 在英文中解释为不存在的。 put与putIfAbsent区别: put在放入数据时,如果放入数据的key已经存在于Map中,最后放入的数...

2019-04-16 14:54:31

阅读数 39

评论数 0

【JAVA基础】 -- Map常见问题(一)

问题: 返回的HashMap中key有对应的value值,但取值时结果却为null。 解析-返回结果为何为null? 1. HashMap的key和value均可为null。 2.key所对应的value本身为空或null,则value返回null 3.无法找到key,则value返回n...

2019-02-21 22:07:32

阅读数 133

评论数 0

2018

  大家都在问,是否完成了2018年定下的2017年没完成的2016年计划的2015年承诺呢?大部分人,恩,没有。我呢,属小部分人,压根就没有过承诺和计划。但18年是值得纪念的一年,收获了很多,也感恩很多。   《别》 世界上最远的距离不是生与死的距离,而是明知道不可以,却还要在一起。 ...

2019-02-14 15:44:34

阅读数 95

评论数 6

【JAVA基础】-- List

java8 1.按顺序排列 List<Entity> list =new ArrayList(); //按时间顺序 list.stream().sorted(Comparator.comparing(Entity::getCreateTime)).collect(...

2019-01-23 16:27:33

阅读数 66

评论数 0

【mysql】-- 获取排列序号

转载:https://blog.csdn.net/gao763024185/article/details/79638052   在进入正题之前先来了解一个mysql中的小知识点: ①   := 与 = 的区别 :=   赋值的意思。在set update select 中表示赋值的意思,...

2018-12-24 17:03:14

阅读数 158

评论数 1

【mysql】-- 基础 不等于

mysql中 != 和 <> 都是可以用的 但是在sqlserver中 != 是不识别的。 为了不混淆,最好直接用<>更方便一点。 参考链接:https://www.jb51.net/article/40...

2018-12-18 15:25:08

阅读数 967

评论数 1

【JAVA基础】-- 数据类型的转换

mysql bigint 本应对应java类型为Java.lang.BigInteger,应用该类型时是 因为:https://blog.csdn.net/u014450159/article/details/79435923 但是由于 其数据长度与Java.lang.Long取值范围是一致的,...

2018-12-17 10:03:31

阅读数 73

评论数 2

提示
确定要删除当前文章?
取消 删除