diff --git a/afis-recall-web/pom.xml b/afis-recall-web/pom.xml
index 336f336..f51bb4c 100644
--- a/afis-recall-web/pom.xml
+++ b/afis-recall-web/pom.xml
@@ -23,6 +23,13 @@
1.1.22
+
+
+ com.xuxueli
+ xxl-job-core
+ 2.3.0
+
+
com.wabestway.recall
afis-recall-api
diff --git a/afis-recall-web/src/main/java/com/wabestway/recall/jobtask/GenVideoJobHandler.java b/afis-recall-web/src/main/java/com/wabestway/recall/jobtask/GenVideoJobHandler.java
new file mode 100644
index 0000000..b229a24
--- /dev/null
+++ b/afis-recall-web/src/main/java/com/wabestway/recall/jobtask/GenVideoJobHandler.java
@@ -0,0 +1,23 @@
+package com.wabestway.recall.jobtask;
+
+import com.wabestway.recall.trace.service.RecallOrderApiService;
+import com.xxl.job.core.biz.model.ReturnT;
+import com.xxl.job.core.handler.annotation.XxlJob;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+@Slf4j
+@Component
+public class GenVideoJobHandler {
+ @Autowired
+ private RecallOrderApiService recallOrderApiService;
+
+ @XxlJob("VideoGenJobHandler")
+ public ReturnT genRecallVideo() {
+ log.info("[定时器:回溯视频]-开始执行");
+ recallOrderApiService.traceVideo();
+ log.info("[定时器:回溯视频]-执行完成");
+ return ReturnT.SUCCESS;
+ }
+}
diff --git a/afis-recall-web/src/main/java/com/wabestway/recall/jobtask/XXLJobConfig.java b/afis-recall-web/src/main/java/com/wabestway/recall/jobtask/XXLJobConfig.java
new file mode 100644
index 0000000..9a65e8a
--- /dev/null
+++ b/afis-recall-web/src/main/java/com/wabestway/recall/jobtask/XXLJobConfig.java
@@ -0,0 +1,47 @@
+package com.wabestway.recall.jobtask;
+
+import com.xxl.job.core.executor.impl.XxlJobSpringExecutor;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+@Configuration
+public class XXLJobConfig {
+
+ private Logger logger = LoggerFactory.getLogger(XXLJobConfig.class);
+
+ @Value("${xxl.job.admin.addresses}")
+ private String adminAddresses;
+
+ @Value("${xxl.job.accessToken}")
+ private String accessToken;
+
+ @Value("${xxl.job.executor.appname}")
+ private String appname;
+
+ @Value("${xxl.job.executor.port:-1}")
+ private int port;
+
+ @Value("${xxl.job.executor.logpath}")
+ private String logPath;
+
+ @Value("${xxl.job.executor.logretentiondays}")
+ private int logRetentionDays;
+
+ @Bean
+ public XxlJobSpringExecutor xxlJobExecutor() {
+ logger.info(">>>>>>>>>>> xxl-job config init.");
+ XxlJobSpringExecutor xxlJobSpringExecutor = new XxlJobSpringExecutor();
+ xxlJobSpringExecutor.setAdminAddresses(adminAddresses);
+ xxlJobSpringExecutor.setAppname(appname);
+ xxlJobSpringExecutor.setPort(port);
+ xxlJobSpringExecutor.setAccessToken(accessToken);
+ xxlJobSpringExecutor.setLogPath(logPath);
+ xxlJobSpringExecutor.setLogRetentionDays(logRetentionDays);
+
+ return xxlJobSpringExecutor;
+ }
+
+}
\ No newline at end of file