Spring redis批处理

时间:2024-10-18 07:10:27
public List<Object> executePipelined(SessionCallback<?> session) { return this.executePipelined(session, this.valueSerializer); } public List<Object> executePipelined(SessionCallback<?> session, @Nullable RedisSerializer<?> resultSerializer) { Assert.isTrue(this.initialized, "template not initialized; call afterPropertiesSet() before using it"); Assert.notNull(session, "Callback object must not be null"); RedisConnectionFactory factory = this.getRequiredConnectionFactory(); RedisConnectionUtils.bindConnection(factory, this.enableTransactionSupport); List var4; try { var4 = (List)this.execute((connection) -> { connection.openPipeline(); boolean pipelinedClosed = false; List var7; try { Object result = this.executeSession(session); // 回调 if (result != null) { throw new InvalidDataAccessApiUsageException("Callback cannot return a non-null value as it gets overwritten by the pipeline"); } List<Object> closePipeline = connection.closePipeline(); pipelinedClosed = true; var7 = this.deserializeMixedResults(closePipeline, resultSerializer, this.hashKeySerializer, this.hashValueSerializer); } finally { if (!pipelinedClosed) { connection.closePipeline(); } } return var7; }); } finally { RedisConnectionUtils.unbindConnection(factory); } return var4; } public List<Object> executePipelined(RedisCallback<?> action) { return this.executePipelined(action, this.valueSerializer); } public List<Object> executePipelined(RedisCallback<?> action, @Nullable RedisSerializer<?> resultSerializer) { return (List)this.execute((connection) -> { connection.openPipeline(); boolean pipelinedClosed = false; List var7; try { Object result = action.doInRedis(connection); if (result != null) { throw new InvalidDataAccessApiUsageException("Callback cannot return a non-null value as it gets overwritten by the pipeline"); } List<Object> closePipeline = connection.closePipeline(); pipelinedClosed = true; var7 = this.deserializeMixedResults(closePipeline, resultSerializer, this.hashKeySerializer, this.hashValueSerializer); } finally { if (!pipelinedClosed) { connection.closePipeline(); } } return var7; }); }