![JAR search and dependency download from the Maven repository](/logo.png)
com.github.lontime.extredisson.common.RedissonExtHelper Maven / Gradle / Ivy
The newest version!
package com.github.lontime.extredisson.common;
import java.time.Duration;
import java.util.StringJoiner;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.TimeUnit;
import com.github.lontime.base.logging.GLogger;
import com.github.lontime.extredisson.RedissonInstance;
import com.github.lontime.extredisson.codec.StringBytesMapCodec;
import com.github.lontime.shaded.org.redisson.api.RStream;
import com.github.lontime.shaded.org.redisson.api.RedissonClient;
import static com.github.lontime.extredisson.common.Constants.SPLITTER;
/**
* RedissonExtHelper.
* @author lontime
* @since 1.0
*/
public class RedissonExtHelper {
public static RedissonClient client(String name) {
return RedissonInstance.get().client(name);
}
public static RStream stringBytesStream(String name, String topic) {
final RedissonClient client = client(name);
return client.getStream(topic, StringBytesMapCodec.INSTANCE);
}
/**
* join.
* @param s1 string
* @param s2 string
* @return replyName
*/
public static String join(String s1, String s2) {
return new StringJoiner(SPLITTER).add(s1).add(s2).toString();
}
/**
* join.
* @param s1 string
* @param s2 string
* @param s3 string
* @return replyName
*/
public static String join(String s1, String s2, String s3) {
return new StringJoiner(SPLITTER).add(s1).add(s2).add(s3).toString();
}
/**
* join.
* @param s1 string
* @param s2 string
* @param s3 string
* @param s4 string
* @return replyName
*/
public static String join(String s1, String s2, String s3, String s4) {
return new StringJoiner(SPLITTER).add(s1).add(s2).add(s3).add(s4).toString();
}
/**
* join.
* @param s1 string
* @param s2 string
* @param s3 string
* @param s4 string
* @param s5 string
* @return replyName
*/
public static String join(String s1, String s2, String s3, String s4, String s5) {
return new StringJoiner(SPLITTER).add(s1).add(s2).add(s3).add(s4).add(s5).toString();
}
/**
* join.
* @param s1 string
* @param s2 string
* @param s3 string
* @param s4 string
* @param s5 string
* @param s6 string
* @return replyName
*/
public static String join(String s1, String s2, String s3, String s4, String s5, String s6) {
return new StringJoiner(SPLITTER).add(s1).add(s2).add(s3).add(s4).add(s5).add(s6).toString();
}
/**
* join.
* @param s1 string
* @param s2 string
* @param s3 string
* @param s4 string
* @param s5 string
* @param s6 string
* @param s7 string
* @return replyName
*/
public static String join(String s1, String s2, String s3, String s4, String s5, String s6, String s7) {
return new StringJoiner(SPLITTER).add(s1).add(s2).add(s3).add(s4).add(s5).add(s6).add(s7).toString();
}
/**
* join.
* @param s1 string
* @param s2 string
* @param s3 string
* @param s4 string
* @param s5 string
* @param s6 string
* @param s7 string
* @param s8 string
* @return replyName
*/
public static String join(String s1, String s2, String s3, String s4, String s5, String s6, String s7, String s8) {
return new StringJoiner(SPLITTER).add(s1).add(s2).add(s3).add(s4).add(s5).add(s6).add(s7).add(s8).toString();
}
/**
* join.
*
* @param future future
* @param totalTimeoutMs timeout
* @param T
* @param size size
* @return result
*/
public static T block(CompletableFuture future, long totalTimeoutMs, int size) {
final long start = System.currentTimeMillis();
final long timeoutMs = size > 0 ? Math.max((totalTimeoutMs / size), 100) : totalTimeoutMs;
GLogger.defaults().infov("join timeout:{0}毫秒, totalTimeout:{1}毫秒, size:{2}", timeoutMs, totalTimeoutMs, size);
try {
final T result = future.get(timeoutMs, TimeUnit.MILLISECONDS);
GLogger.defaults().infov("join is successful, {0} ms", (System.currentTimeMillis() - start));
return result;
} catch (Exception e) {
GLogger.defaults().infov(e, "join is error, {0} ms!", (System.currentTimeMillis() - start));
return null;
}
}
/**
* join.
*
* @param future future
* @param totalTimeout timeout
* @param T
* @param size size
* @return result
*/
public static T block(CompletableFuture future, Duration totalTimeout, int size) {
return block(future, totalTimeout.toMillis(), size);
}
/**
* join.
*
* @param future future
* @param totalTimeout timeout
* @param T
* @return result
*/
public static T block(CompletableFuture future, Duration totalTimeout) {
return block(future, totalTimeout, 0);
}
/**
* join.
*
* @param future future
* @param totalTimeoutMs timeout
* @param T
* @return result
*/
public static T block(CompletableFuture future, long totalTimeoutMs) {
return block(future, totalTimeoutMs, 0);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy