0

我正在尝试构建自己的 faas 服务。我想支持在运行时加载该功能。

@SpringBootApplication
@EnableScheduling
public class DeployerApplication {

    FunctionCatalog catalog;

    @Scheduled(cron = "0/5 * * * * ?")
    void loadSomething() {
        String[] args = new String[]{
            "--spring.cloud.function.location=./faas-function/target/faas-function-1.0-SNAPSHOT-boot.jar",
            "--spring.cloud.function.function-class=com.example.Tmp"};

        ApplicationContext context = SpringApplication.run(TmpApplication.class, args);
        catalog = context.getBean(FunctionCatalog.class);
    }

    public static void main(String[] args) {
        SpringApplication.run(DeployerApplication.class, args);
    }

    @SpringBootApplication(proxyBeanMethods = false)
    private static class TmpApplication {

    }
}

但是当我运行这些代码时,我得到了那些

Caused by: javax.management.InstanceAlreadyExistsException: org.springframework.boot:type=Admin,name=SpringApplication
    at com.sun.jmx.mbeanserver.Repository.addMBean(Repository.java:437) ~[na:1.8.0_201]
    at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.registerWithRepository(DefaultMBeanServerInterceptor.java:1898) ~[na:1.8.0_201]
    at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.registerDynamicMBean(DefaultMBeanServerInterceptor.java:966) ~[na:1.8.0_201]
    at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.registerObject(DefaultMBeanServerInterceptor.java:900) ~[na:1.8.0_201]
    at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.registerMBean(DefaultMBeanServerInterceptor.java:324) ~[na:1.8.0_201]
    at com.sun.jmx.mbeanserver.JmxMBeanServer.registerMBean(JmxMBeanServer.java:522) ~[na:1.8.0_201]
    at org.springframework.boot.admin.SpringApplicationAdminMXBeanRegistrar.afterPropertiesSet(SpringApplicationAdminMXBeanRegistrar.java:129) ~[spring-boot-2.4.0.jar:2.4.0]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1847) ~[spring-beans-5.3.1.jar:5.3.1]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1784) ~[spring-beans-5.3.1.jar:5.3.1]
    ... 32 common frames omitted

spring-cloud-function-deployer 如何在运行时部署/取消部署功能?

4

1 回答 1

0

你的问题很广泛,所以。. . 项目 git 存储库中有一个集成测试用例以及演示几个支持的场景的单个项目(我相信你会找到适合你的那个),请查看并随时跟进更具体的问题。

于 2021-01-26T15:43:09.970 回答