@Override public void commit() { final int initCount = target.size(); if (initCount <= 0) { ByteBuffer buffer = source.allocate(); buffer = source.writeToBuffer(OkPacket.OK, buffer); source.write(buffer); return; } commitExecutor.commit(null, this, initCount); }
@Override public void terminate() { // 终止所有正在执行的任务 kill(); // 等待所有任务结束,包括还未执行的,执行中的,执行完的。 try { singleNodeExecutor.terminate(); // multiNodeExecutor.terminate(); commitExecutor.terminate(); rollbackExecutor.terminate(); } catch (InterruptedException e) { for (RouteResultsetNode rrn : target.keySet()) { Channel c = target.remove(rrn); if (c != null) { // c.close(); } } LOGGER.warn("termination interrupted: " + source, e); } // 清理绑定的资源 clear(false); }