<T> void executeBlocking(Handler<Future<T>> blockingCodeHandler, Handler<AsyncResult<T>> resultHandler, Executor exec, TaskQueue queue, PoolMetrics metrics) { Object queueMetric = metrics != null ? metrics.submitted() : null; try { Runnable command = () -> { Object execMetric = null; if (metrics != null) { execMetric = metrics.begin(queueMetric); metrics.end(execMetric, res.succeeded()); metrics.rejected(queueMetric);
void close() { if (metrics != null) { metrics.close(); } pool.shutdownNow(); } }
final <T> Runnable wrapTask(T arg, Handler<T> hTask, PoolMetrics metrics) { Object metric = metrics != null ? metrics.submitted() : null; return () -> { if (metrics != null) { metrics.begin(metric); } boolean succeeded = executeTask(arg, hTask); if (metrics != null) { metrics.end(metric, succeeded); } }; }
private void getConnection(Context ctx, Handler<AsyncResult<SQLConnection>> handler) { boolean enabled = metrics != null && metrics.isEnabled(); Object queueMetric = enabled ? metrics.submitted() : null; PoolMetrics metrics = enabled ? this.metrics : null; exec.execute(() -> { Object execMetric = null; if (metrics != null) { execMetric = metrics.begin(queueMetric); } catch (SQLException e) { if (metrics != null) { metrics.rejected(queueMetric);
@Override public Void execute(Connection conn) throws SQLException { if (!conn.isClosed()) { if (metrics != null) { metrics.end(metric, true); } conn.close(); } return null; }
final <T> Runnable wrapTask(T arg, Handler<T> hTask, PoolMetrics metrics) { Object metric = metrics != null ? metrics.submitted() : null; return () -> { if (metrics != null) { metrics.begin(metric); } boolean succeeded = executeTask(arg, hTask); if (metrics != null) { metrics.end(metric, succeeded); } }; }
private <T> void executeDirect(Context ctx, AbstractJDBCAction<T> action, Handler<AsyncResult<T>> handler) { getConnection(ctx, ar1 -> { Future<T> fut = Future.future(); fut.setHandler(ar2 -> ctx.runOnContext(v -> handler.handle(ar2))); if (ar1.succeeded()) { JDBCConnectionImpl conn = (JDBCConnectionImpl) ar1.result(); try { T result = action.execute(conn.conn); fut.complete(result); } catch (Exception e) { fut.fail(e); } finally { if (metrics != null) { metrics.end(conn.metric, true); } try { conn.conn.close(); } catch (Exception e) { JDBCConnectionImpl.log.error("Failure in closing connection", ar1.cause()); } } } else { fut.fail(ar1.cause()); } }); }
<T> void executeBlocking(Handler<Future<T>> blockingCodeHandler, Handler<AsyncResult<T>> resultHandler, Executor exec, TaskQueue queue, PoolMetrics metrics) { Object queueMetric = metrics != null ? metrics.submitted() : null; try { Runnable command = () -> { Object execMetric = null; if (metrics != null) { execMetric = metrics.begin(queueMetric); metrics.end(execMetric, res.succeeded()); metrics.rejected(queueMetric);
void close() { if (metrics != null) { metrics.close(); } pool.shutdownNow(); } }
if (--refCount == 0) { if (metrics != null) { metrics.close();