VppUnPropertiesLoader.java 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. package com.usky.vpp.job;
  2. import com.usky.vpp.config.VppUnProperties;
  3. import com.usky.vpp.config.VppUnPropertiesRegistry;
  4. import com.usky.vpp.service.VppUnRegisterTaskService;
  5. import org.springframework.beans.factory.annotation.Autowired;
  6. import org.springframework.boot.ApplicationArguments;
  7. import org.springframework.boot.ApplicationRunner;
  8. import org.springframework.core.annotation.Order;
  9. import org.springframework.stereotype.Component;
  10. /**
  11. * 服务启动时从 vpp_tenant_config 加载 UN 配置至内存,并按需自动注册 UN
  12. */
  13. @Component
  14. @Order(100)
  15. public class VppUnPropertiesLoader implements ApplicationRunner {
  16. @Autowired
  17. private VppUnPropertiesRegistry propertiesRegistry;
  18. @Autowired
  19. private VppUnRegisterTaskService unRegisterTaskService;
  20. @Override
  21. public void run(ApplicationArguments args) {
  22. propertiesRegistry.refreshAll();
  23. autoRegisterOnStartup();
  24. }
  25. private void autoRegisterOnStartup() {
  26. for (VppUnProperties properties : propertiesRegistry.getAll()) {
  27. if (!Boolean.TRUE.equals(properties.getAutoRegisterOnStartup()) || !properties.isOutboundActive()) {
  28. continue;
  29. }
  30. unRegisterTaskService.registerUn(properties.getTenantId());
  31. }
  32. }
  33. }