Merge pull request #5699 from naah69/quarkus-shutdown-graceful

add redisson graceful shutdown in quarkus
pull/5706/head
Nikita Koksharov 11 months ago committed by GitHub
commit ea3eb77a3a
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

@ -17,6 +17,7 @@ package io.quarkus.redisson.client.runtime;
import com.fasterxml.jackson.databind.MapperFeature;
import io.quarkus.arc.DefaultBean;
import io.quarkus.runtime.shutdown.ShutdownConfig;
import org.eclipse.microprofile.config.ConfigProvider;
import org.redisson.Redisson;
import org.redisson.api.RedissonClient;
@ -27,11 +28,14 @@ import org.redisson.config.PropertiesConvertor;
import javax.annotation.PreDestroy;
import javax.enterprise.context.ApplicationScoped;
import javax.enterprise.inject.Produces;
import javax.inject.Inject;
import javax.inject.Singleton;
import java.io.IOException;
import java.io.InputStream;
import java.nio.charset.StandardCharsets;
import java.time.Duration;
import java.util.*;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
import java.util.stream.Stream;
import java.util.stream.StreamSupport;
@ -46,6 +50,9 @@ public class RedissonClientProducer {
private RedissonClient redisson;
@Inject
public ShutdownConfig shutdownConfig;
@Produces
@Singleton
@DefaultBean
@ -87,7 +94,12 @@ public class RedissonClientProducer {
@PreDestroy
public void close() {
if (redisson != null) {
redisson.shutdown();
if (shutdownConfig.isShutdownTimeoutSet()){
Duration grace = shutdownConfig.timeout.get();
redisson.shutdown(grace.toMillis(),grace.toMillis()*2, TimeUnit.MILLISECONDS);
}else{
redisson.shutdown();
}
}
}

@ -17,6 +17,7 @@ package io.quarkus.redisson.client.runtime;
import com.fasterxml.jackson.databind.MapperFeature;
import io.quarkus.arc.DefaultBean;
import io.quarkus.runtime.shutdown.ShutdownConfig;
import org.eclipse.microprofile.config.ConfigProvider;
import org.redisson.Redisson;
import org.redisson.api.RedissonClient;
@ -27,11 +28,14 @@ import org.redisson.config.PropertiesConvertor;
import javax.annotation.PreDestroy;
import javax.enterprise.context.ApplicationScoped;
import javax.enterprise.inject.Produces;
import javax.inject.Inject;
import javax.inject.Singleton;
import java.io.IOException;
import java.io.InputStream;
import java.nio.charset.StandardCharsets;
import java.time.Duration;
import java.util.Optional;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
import java.util.stream.Stream;
import java.util.stream.StreamSupport;
@ -46,6 +50,9 @@ public class RedissonClientProducer {
private RedissonClient redisson;
@Inject
public ShutdownConfig shutdownConfig;
@Produces
@Singleton
@DefaultBean
@ -83,7 +90,12 @@ public class RedissonClientProducer {
@PreDestroy
public void close() {
if (redisson != null) {
redisson.shutdown();
if (shutdownConfig.isShutdownTimeoutSet()){
Duration grace = shutdownConfig.timeout.get();
redisson.shutdown(grace.toMillis(),grace.toMillis()*2, TimeUnit.MILLISECONDS);
}else{
redisson.shutdown();
}
}
}

@ -50,6 +50,11 @@
<artifactId>jakarta.enterprise.cdi-api</artifactId>
</dependency>
<dependency>
<groupId>jakarta.inject</groupId>
<artifactId>jakarta.inject-api</artifactId>
</dependency>
<dependency>
<groupId>org.graalvm.nativeimage</groupId>
<artifactId>svm</artifactId>

@ -17,6 +17,8 @@ package io.quarkus.redisson.client.runtime;
import com.fasterxml.jackson.databind.MapperFeature;
import io.quarkus.arc.DefaultBean;
import io.quarkus.runtime.shutdown.ShutdownConfig;
import jakarta.inject.Inject;
import org.eclipse.microprofile.config.ConfigProvider;
import org.redisson.Redisson;
import org.redisson.api.RedissonClient;
@ -31,7 +33,9 @@ import jakarta.inject.Singleton;
import java.io.IOException;
import java.io.InputStream;
import java.nio.charset.StandardCharsets;
import java.time.Duration;
import java.util.Optional;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
import java.util.stream.Stream;
import java.util.stream.StreamSupport;
@ -46,6 +50,9 @@ public class RedissonClientProducer {
private RedissonClient redisson;
@Inject
public ShutdownConfig shutdownConfig;
@Produces
@Singleton
@DefaultBean
@ -83,7 +90,12 @@ public class RedissonClientProducer {
@PreDestroy
public void close() {
if (redisson != null) {
redisson.shutdown();
if (shutdownConfig.isShutdownTimeoutSet()){
Duration grace = shutdownConfig.timeout.get();
redisson.shutdown(grace.toMillis(),grace.toMillis()*2, TimeUnit.MILLISECONDS);
}else{
redisson.shutdown();
}
}
}

Loading…
Cancel
Save