我有一个复杂的查询(包含多个连接,联合),它返回一组包含id,day,hr,amount的行.查询的输出如下所示:
id day hr amount
1 1 1 10
1 1 2 25
1 1 3 30
1 2 1 10
1 2 2 40
1 2 2 30
2 1 1 10
2 1 2 15
2 1 3 30
2 2 1 10
2 2 2 20
2 2 2 30
Run Code Online (Sandbox Code Playgroud)
我需要找到每个小时的累计总数,每天的每个小时.输出应该是这样的:
id day hr amount cumulative total
1 1 1 10 10
1 1 2 25 35
1 1 3 30 65
1 2 1 10 10 …Run Code Online (Sandbox Code Playgroud) 我需要我的 ChannelHandler 中的 messageReceived(或 netty 4.0 的 channelRead0)方法在某个时间阈值后超时。我尝试过 Read/WriteTimeoutHandlers,但是当我的 messageReceived 处理时间超过超时时无法生成异常。这是我尝试过的:
public class HttpServerInitializer extends ChannelInitializer<SocketChannel> {
@Override
public void initChannel(SocketChannel ch) {
ChannelPipeline p = ch.pipeline();
p.addLast(new HttpRequestDecoder());
p.addLast(new HttpResponseEncoder());
p.addLast(new HttpObjectAggregator(1048576));
p.addLast(new HttpContentCompressor());
p.addLast("readTimeoutHandler", new ReadTimeoutHandler(1));
//p.addLast("idleTimeoutHandler", new IdleStateHandler(1, 1, 1));
p.addLast(new HttpRequestHandler());
}
}
public class HttpRequestHandler extends SimpleChannelInboundHandler<FullHttpRequest> {
public static class Call implements Callable<Boolean> {
public Boolean call() {
for(long i = 0; i<100000000;i++){
for(long j = 0; j<100;j++){
}
}
return true;
}
} …Run Code Online (Sandbox Code Playgroud)