1.调用外部接口要用try-catch 捕获,最好能捕获throwable,以防对自己程序造成影响。
2.设计SOA接口时要防重入,特别是插入类接口。
3.收mq的消息并不直接处理,而是把消息先保存下来,处理是异步的,所有的处理都在业务上有防重逻辑
4.发mq先插入到数据表中再发送,以防mq发送时异常。
5.任务驱动引擎设计思路
就是在推送的时候如果任务驱动引擎连不上服务端会把 任务类型 及 任务体 按照固定格式写到文件中去,如果文件写成功,那么返回给 推送调用方的就是成功,任务驱动引擎客户端 本身自带一个自动重试的worker,定时去设定的文件夹下扫描有没有文件存在,把文件读取出来解析 任务类型及任务体再尝试推送,成功就把文件删掉,失败就下次继续
mq的发送方只要能有 destination 和 内容,其实这种方案也同样可以实现,这样就不用在业务上去关心是否推送成功
6.线上worker最好能防重入,重复执行没问题。