项目需要在当前的xxl-job环境上,基于代码实现任务的新建、修改等功能。查看部分资料发现可以通过xxl-job的http接口服务实现。
下面是实现细节的相关记录:
<!-- SpringBoot依赖包 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-autoconfigure</artifactId>
</dependency>
<!-- Feign依赖包 -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
<!-- XXL-JOB依赖包 -->
<dependency>
<groupId>com.xuxueli</groupId>
<artifactId>xxl-job-core</artifactId>
<version>2.3.1</version>
</dependency>
- 根据xxl-job的登录接口获取cookie信息,用于后续其他接口的正常访问。
java">@Slf4j
@Service("xxlJobAdminLoginService")
public class XxlJobAdminLoginServiceImpl implements XxlJobAdminLoginService {
private static final String LOGIN_PATH = "login";
@Value("${xxl.job.admin.addresses:}")
private String adminAddresses;
@Value("${xxl.job.admin.username:}")
private String username;
@Value("${xxl.job.admin.password:}")
private String password;
private final Cache<String, String> cache = new MemoryCache();
@Override
public String readLoginCookie() throws BusinessException {
String cookie = cache.get(LOGIN_PATH);
return StrUtil.isBlank(cookie) ? readCookieFromLogin() : cookie;
}
private String readCookieFromLogin() {
Map