### 场景简介

我想使用xxl-job是为了在分布式场景下有更好的定时任务调度效果

实际上我也是在Spring Cloud微服务场景下使用xxl-job的

并且基于docker容器化部署

executor获取IP这方面花了我不少时间

感谢我的朋友给我一些启发

我现在将我的解决方案放在下面

### 概述

使用 **org.springframework.cloud.commons.util** 包下的 **InetUtils** 工具获取IP

可以配合 **spring.cloud.inetutils.perferred-networks** 配置来指定网段

### 具体使用代码

在你配置executor的IP时

建议先判断配置文件中是否已经有配executor的IP

如果有配则使用配置的

如果没配使用上述IP工具获取IP

```JAVA
    @Autowired
    private InetUtils inetUtils;

    // 在你需要的地方获取IP
    String ip = inetUtils.findFirstNonLoopbackHostInfo().getIpAddress();
```

### 额外说明
虽然InetUtils类本身源码上没有@Component注解

但是我见到构造函数中有一个自动配置类的参数

所以尝试使用依赖注入

结果也的的确确拿到了对象

如果不放心也可以自己new一个

个人技术比较菜

互相学习
Spring Cloud架构下executor获取IP
This is a GitHub Issue
repo:xxl-job
owner:xuxueli
Title : Spring Cloud架构下executor获取IP
Issue date:

--- start body ---
### 场景简介

我想使用xxl-job是为了在分布式场景下有更好的定时任务调度效果

实际上我也是在Spring Cloud微服务场景下使用xxl-job的

并且基于docker容器化部署

executor获取IP这方面花了我不少时间

感谢我的朋友给我一些启发

我现在将我的解决方案放在下面

### 概述

使用 **org.springframework.cloud.commons.util** 包下的 **InetUtils** 工具获取IP

可以配合 **spring.cloud.inetutils.perferred-networks** 配置来指定网段

### 具体使用代码

在你配置executor的IP时

建议先判断配置文件中是否已经有配executor的IP

如果有配则使用配置的

如果没配使用上述IP工具获取IP

```JAVA
    @Autowired
    private InetUtils inetUtils;

    // 在你需要的地方获取IP
    String ip = inetUtils.findFirstNonLoopbackHostInfo().getIpAddress();
```

### 额外说明
虽然InetUtils类本身源码上没有@Component注解

但是我见到构造函数中有一个自动配置类的参数

所以尝试使用依赖注入

结果也的的确确拿到了对象

如果不放心也可以自己new一个

个人技术比较菜

互相学习
--- end body ---
