我应该将业务逻辑放在netty4中?
我应该将代码放在@Override channelRead0()
中还是在其中运行任务?
我知道这两个都会遇到相同的IO eventLoop,但它们之间有什么区别?哪个更好?
解决方案1:
@Override
channelRead0(){
business code;
}
解决方案2:
@Override
channelRead0(){
ctx.executor().submit(new task(){business code});
//or ctx.channel().eventLoop().submit(new task(){business code});
}
答案 0 :(得分:1)
只要您不使用任何阻止操作(例如从DB读取)channelRead0
就完全没问题了。一般来说,由您来决定。当您需要执行一些慢速操作,异步操作或定时事件时,Submit
方法更有可能出现。