增强集群插件兼容性

This commit is contained in:
jmxd 2023-04-15 09:58:47 +08:00
parent c62ba28d9a
commit 26ab11eb01

View File

@ -2,15 +2,11 @@ package org.ssssssss.magicapi.cluster;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.ObjectProvider;
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.connection.RedisConnectionFactory;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.data.redis.listener.ChannelTopic;
import org.springframework.data.redis.listener.RedisMessageListenerContainer;
import org.ssssssss.magicapi.core.config.MagicAPIProperties;
@ -19,9 +15,10 @@ import org.ssssssss.magicapi.core.model.MagicNotify;
import org.ssssssss.magicapi.core.model.Plugin;
import org.ssssssss.magicapi.core.service.MagicAPIService;
import org.ssssssss.magicapi.core.service.MagicNotifyService;
import org.ssssssss.magicapi.redis.RedisModule;
import org.ssssssss.magicapi.utils.JsonUtils;
import java.util.Objects;
import java.util.Arrays;
@EnableConfigurationProperties(ClusterConfig.class)
@ -32,14 +29,11 @@ public class MagicClusterConfiguration implements MagicPluginConfiguration {
private final MagicAPIProperties properties;
private final StringRedisTemplate stringRedisTemplate;
private final Logger logger = LoggerFactory.getLogger(MagicClusterConfiguration.class);
public MagicClusterConfiguration(MagicAPIProperties properties, ClusterConfig config, ObjectProvider<StringRedisTemplate> stringRedisTemplateProvider) {
public MagicClusterConfiguration(MagicAPIProperties properties, ClusterConfig config) {
this.properties = properties;
this.config = config;
this.stringRedisTemplate = stringRedisTemplateProvider.getIfAvailable();
}
@Override
@ -52,8 +46,8 @@ public class MagicClusterConfiguration implements MagicPluginConfiguration {
*/
@Bean
@ConditionalOnMissingBean
public MagicNotifyService magicNotifyService() {
return magicNotify -> stringRedisTemplate.convertAndSend(config.getChannel(), Objects.requireNonNull(JsonUtils.toJsonString(magicNotify)));
public MagicNotifyService magicNotifyService(RedisModule redisModule) {
return magicNotify -> redisModule.execute("publish", Arrays.asList(config.getChannel(), JsonUtils.toJsonString(magicNotify)));
}
/**