我应该在哪里将业务逻辑放在netty4中?在chanelRead0()中还是运行任务?

时间:2017-03-06 04:33:51

标签: netty

我应该将业务逻辑放在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});
}

1 个答案:

答案 0 :(得分:1)

只要您不使用任何阻止操作(例如从DB读取)channelRead0就完全没问题了。一般来说,由您来决定。当您需要执行一些慢速操作,异步操作或定时事件时,Submit方法更有可能出现。