Skip to content

Commit 21dab5d

Browse files
authored
Merge pull request #190 from fanson/perf/batch-flush
perf: batch flush with write() and channelReadComplete()
2 parents f3fa67c + e451184 commit 21dab5d

File tree

4 files changed

+13
-1
lines changed

4 files changed

+13
-1
lines changed

src/main/java/com/github/tonivade/resp/RespConnectionHandler.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,11 @@ public void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception
4141
}
4242
}
4343

44+
@Override
45+
public void channelReadComplete(ChannelHandlerContext ctx) throws Exception {
46+
ctx.flush();
47+
}
48+
4449
@Override
4550
public void channelInactive(ChannelHandlerContext ctx) throws Exception {
4651
LOGGER.debug("channel inactive");

src/main/java/com/github/tonivade/resp/RespServerContext.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -148,6 +148,7 @@ protected <T> Observable<T> enqueue(Observable<T> observable) {
148148

149149
private void processResponse(Request request, RedisToken token) {
150150
request.getSession().publish(token);
151+
request.getSession().flush();
151152
if (request.isExit()) {
152153
request.getSession().close();
153154
}

src/main/java/com/github/tonivade/resp/command/DefaultSession.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,12 @@ public String getId() {
3636

3737
@Override
3838
public void publish(RedisToken msg) {
39-
ctx.writeAndFlush(msg);
39+
ctx.write(msg);
40+
}
41+
42+
@Override
43+
public void flush() {
44+
ctx.flush();
4045
}
4146

4247
@Override

src/main/java/com/github/tonivade/resp/command/Session.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
public interface Session {
1212
String getId();
1313
void publish(RedisToken msg);
14+
default void flush() {}
1415
void close();
1516
void destroy();
1617
<T> Optional<T> getValue(String key);

0 commit comments

Comments
 (0)