热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

netty发送消息通知后删除数据的坑

最近用netty实现了一个简单的消息系统,消息数据暂时设计是保存在数据库,分为消息主体表和最新消息表,在目前的逻辑设计中,一

最近用netty实现了一个简单的消息系统,消息数据暂时设计是保存在数据库,分为消息主体表和最新消息表,在目前的逻辑设计中,一旦将最新消息表对应的的消息发送出去后,就把该条消息删除,因为Netty所有的I/O操作都是异步的,所以如果想要在I/O操作后加一些固定要执行的逻辑,应该优先使用addListener(GenericFutureListener)的方式来完成,否则很可能导致最新消息表中的消息不会被删除,导致消息重发,参考代码如下:

ChannelFuture future = channel.writeAndFlush(new TextWebSocketFrame(mapJsonobject.toString()));future.addListener(new ChannelFutureListener() {@Overridepublic void operationComplete(ChannelFuture channelFuture) throws Exception {if (channelFuture.isDone() && channelFuture.isSuccess()) {//todo 删除存储中的消息}}});


推荐阅读
author-avatar
博菡
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有