feat:机器人消息模板接口联调
This commit is contained in:
parent
0249958a1a
commit
a036f6869c
@ -21,7 +21,7 @@ import java.util.List;
|
||||
* @date 2023/10/9 16:01
|
||||
*/
|
||||
|
||||
@FeignClient(name = "im-center", url = "${axzo.service.im-center:http://im:8080}")
|
||||
@FeignClient(name = "im-center", url = "${axzo.service.im-center:http://im-center:8080}")
|
||||
public interface AccountApi {
|
||||
|
||||
/**
|
||||
|
||||
@ -1,2 +1,2 @@
|
||||
#org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
|
||||
#cn.axzo.im.center.api.config.MaoKaiApiAutoConfiguration
|
||||
#cn.axzo.im.center.api.cn.axzo.im.config.MaoKaiApiAutoConfiguration
|
||||
@ -1,2 +1,2 @@
|
||||
#org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
|
||||
#cn.axzo.im.center.api.config.MaoKaiApiAutoConfiguration
|
||||
#cn.axzo.im.center.api.cn.axzo.im.config.MaoKaiApiAutoConfiguration
|
||||
@ -0,0 +1,104 @@
|
||||
package cn.axzo.im.config;
|
||||
|
||||
import cn.hutool.core.util.ReflectUtil;
|
||||
import feign.RequestInterceptor;
|
||||
import feign.RequestTemplate;
|
||||
import feign.Target.HardCodedTarget;
|
||||
import lombok.SneakyThrows;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.context.EnvironmentAware;
|
||||
import org.springframework.context.annotation.Profile;
|
||||
import org.springframework.core.env.Environment;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.lang.reflect.Field;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
|
||||
/**
|
||||
* FeignConfig配置
|
||||
*
|
||||
* @author zuoqinbo
|
||||
* @version V1.0
|
||||
* @date 2023/10/18 10:52
|
||||
*/
|
||||
@Component
|
||||
@Slf4j
|
||||
@Profile({"dev", "test", "local"})
|
||||
public class FeignConfig implements RequestInterceptor, EnvironmentAware {
|
||||
private Environment environment;
|
||||
@Value("${maokaiEnvUrl:http://dev-app.axzo.cn/maokai}")
|
||||
private String maokaiEnvUrl;
|
||||
@Value("${apolloEnvUrl:http://dev-app.axzo.cn/apollo}")
|
||||
private String apolloEnvUrl;
|
||||
@Value("${mnsEnvUrl:http://dev-app.axzo.cn/mns}")
|
||||
private String mnsEnvUrl;
|
||||
@Value("${pudgeEnvUrl:http://dev-app.axzo.cn/pudge}")
|
||||
private String pudgeEnvUrl;
|
||||
@Value("${outmanEnvUrl:http://dev-app.axzo.cn/outman}")
|
||||
private String outmanEnvUrl;
|
||||
@Value("${thronesEnvUrl:http://dev-app.axzo.cn/thrones}")
|
||||
private String thronesEnvUrl;
|
||||
@Value("${workspaceEnvUrl:http://dev-app.axzo.cn/workspace}")
|
||||
private String workspaceEnvUrl;
|
||||
@Value("${thirdPartUrl:http://dev-app.axzo.cn/thirdParty}")
|
||||
private String thirdPartUrl;
|
||||
@Value("${nanopartUrl:http://dev-app.axzo.cn/nanopart}")
|
||||
private String nanopartUrl;
|
||||
@Value("${tyrEnvUrl:http://dev-app.axzo.cn/tyr}")
|
||||
private String tyrEnvUrl;
|
||||
@Value("${msgCenterEnvUrl:http://dev-app.axzo.cn/msg-center}")
|
||||
private String msgCenterEnvUrl;
|
||||
@Value("${imCenterEnvUrl:http://dev-app.axzo.cn/im-center}")
|
||||
private String imCenterEnvUrl;
|
||||
private static String POD_NAMESPACE;
|
||||
|
||||
static {
|
||||
Map<String, String> env = System.getenv();
|
||||
if (env != null) {
|
||||
POD_NAMESPACE = env.get("MY_POD_NAMESPACE");
|
||||
}
|
||||
log.info("init FeignConfig, POD_NAMESPACE value is {}", POD_NAMESPACE);
|
||||
}
|
||||
|
||||
@SneakyThrows
|
||||
@Override
|
||||
public void apply(RequestTemplate requestTemplate) {
|
||||
if (POD_NAMESPACE == null) {
|
||||
HardCodedTarget target = (HardCodedTarget) requestTemplate.feignTarget();
|
||||
String url = requestTemplate.feignTarget().url();
|
||||
// 如需修改微服务地址,建议通过外部化参数来调整
|
||||
url = url.replace("http://maokai:8080", maokaiEnvUrl);
|
||||
url = url.replace("http://apollo:11000", apolloEnvUrl);
|
||||
url = url.replace("http://mns:8989", mnsEnvUrl);
|
||||
url = url.replace("http://pudge:10099", pudgeEnvUrl);
|
||||
url = url.replace("http://outman:8989", outmanEnvUrl);
|
||||
url = url.replace("http://thrones", thronesEnvUrl);
|
||||
url = url.replace("http://workspace:8080", workspaceEnvUrl);
|
||||
url = url.replace("http://third-party:11000", thirdPartUrl);
|
||||
url = url.replace("http://nanopart:8080", nanopartUrl);
|
||||
url = url.replace("http://tyr:8080", tyrEnvUrl);
|
||||
url = url.replace("http://msg-center:8080", msgCenterEnvUrl);
|
||||
url = url.replace("http://im-center:8080", imCenterEnvUrl);
|
||||
String profile = environment.getProperty("spring.profiles.active");
|
||||
if(Objects.equals(profile, "test") && url.contains("dev-app.axzo.cn")) {
|
||||
url = url.replace("dev-app", "test-api");
|
||||
}
|
||||
requestTemplate.target(url);
|
||||
Field field = ReflectUtil.getField(target.getClass(), "url");
|
||||
field.setAccessible(true);
|
||||
field.set(target, url);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the {@code Environment} that this component runs in.
|
||||
*
|
||||
* @param environment
|
||||
*/
|
||||
@Override
|
||||
public void setEnvironment(Environment environment) {
|
||||
this.environment = environment;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,45 @@
|
||||
package cn.axzo.im.config;
|
||||
|
||||
import org.springframework.cloud.openfeign.EnableFeignClients;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
|
||||
import java.util.concurrent.ArrayBlockingQueue;
|
||||
import java.util.concurrent.ExecutorService;
|
||||
import java.util.concurrent.ThreadPoolExecutor;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
import static cn.axzo.im.config.GlobalConfig.FeignClientConstant.*;
|
||||
|
||||
/**
|
||||
* @author tanjie@axzo.cn
|
||||
* @date 2023/7/5 16:08
|
||||
*/
|
||||
@Configuration
|
||||
@EnableFeignClients(basePackages = {
|
||||
MSG_CENTER
|
||||
})
|
||||
public class GlobalConfig {
|
||||
/**
|
||||
* 第三方Feign
|
||||
*/
|
||||
public class FeignClientConstant {
|
||||
public static final String MSG_CENTER = "cn.axzo.msg.center.service";
|
||||
}
|
||||
|
||||
/**
|
||||
* pod 容器中, 实际 coreSize = 1,所以在此线程池中,coreSize=2,maxCoreSize=4,
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@Bean
|
||||
public ExecutorService controllerExecutor() {
|
||||
int coreSize = Runtime.getRuntime()
|
||||
.availableProcessors() == 1 ? Runtime.getRuntime().availableProcessors() * 4
|
||||
: Runtime.getRuntime().availableProcessors();
|
||||
ThreadPoolExecutor executor = new ThreadPoolExecutor(coreSize, coreSize * 2, 60, TimeUnit.SECONDS,
|
||||
new ArrayBlockingQueue<>(1 << 8), r -> new Thread(r, "YOKE-CONTROLLER-EXECUTOR"));
|
||||
executor.prestartCoreThread();
|
||||
return executor;
|
||||
}
|
||||
}
|
||||
@ -44,7 +44,7 @@ public class XxlJobConfig {
|
||||
@Bean
|
||||
@NonLocalEnvironment
|
||||
public XxlJobSpringExecutor xxlJobExecutor() {
|
||||
log.info("----axzo im-center service xxl-job config init---");
|
||||
log.info("----axzo im-center service xxl-job cn.axzo.im.config init---");
|
||||
XxlJobSpringExecutor xxlJobSpringExecutor = new XxlJobSpringExecutor();
|
||||
xxlJobSpringExecutor.setAdminAddresses(adminAddresses);
|
||||
xxlJobSpringExecutor.setAppname(appName);
|
||||
|
||||
Loading…
Reference in New Issue
Block a user