Commit 240fea95 by 朽木不可雕也

backup

parent 98fece20
......@@ -9,6 +9,7 @@ import com.zhiweidata.automatictest.barragecrawlerserver.entity.BarrageExportRes
import com.zhiweidata.automatictest.barragecrawlerserver.entity.ServerResponseMessage;
import com.zhiweidata.automatictest.barragecrawlerserver.mapper.BarrageExportResultMapper;
import com.zhiweidata.automatictest.barragecrawlerserver.mapper.ServerResponseMessageMapper;
import com.zhiweidata.automatictest.barragecrawlerserver.util.TimeUtil;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
......@@ -27,13 +28,17 @@ import org.apache.ibatis.session.SqlSession;
import org.jetbrains.annotations.NotNull;
import org.quartz.Job;
import org.quartz.JobDataMap;
import org.quartz.JobDetail;
import org.quartz.JobExecutionContext;
import org.quartz.SchedulerException;
import org.quartz.Trigger;
import org.quartz.TriggerBuilder;
import static com.zhiweidata.automatictest.barragecrawlerserver.config.BaseConfig.BARRAGE_COLLECTION_TASK_JOB_KEY;
import static com.zhiweidata.automatictest.barragecrawlerserver.config.BaseConfig.CACHE_DIR;
import static com.zhiweidata.automatictest.barragecrawlerserver.config.BaseConfig.TASK_URL;
import static com.zhiweidata.automatictest.publics.BeanContainer.HTTP_CLIENT;
import static com.zhiweidata.automatictest.publics.BeanContainer.SCHEDULER;
import static com.zhiweidata.automatictest.publics.BeanContainer.SQL_SESSION_FACTORY;
import static java.util.Objects.isNull;
import static java.util.Objects.nonNull;
......@@ -47,9 +52,14 @@ import static java.util.Objects.requireNonNull;
* @ide IntelliJ IDEA
*/
@Slf4j
@SuppressWarnings("JavaDoc")
@SuppressWarnings({"JavaDoc", "GrazieInspection"})
public class ExportTaskJob implements Job {
/**
* 作业对象
*/
private JobDetail detail;
/**
* 1. 使用任务的 name 作为关键词,请求接口,获得对应任务的任务ID
* 2. 根据获得的任务ID,尝试从弹幕导出接口,导出弹幕
* 3. 判断服务的响应是 excel 文件,还是 application/json
......@@ -61,6 +71,7 @@ public class ExportTaskJob implements Job {
try {
JobDataMap jobDataMap = requireNonNull(context.getMergedJobDataMap());
BarrageCollectionTestTask collectionTask = (BarrageCollectionTestTask) requireNonNull(jobDataMap.get(BARRAGE_COLLECTION_TASK_JOB_KEY));
this.detail = context.getJobDetail();
this.export(collectionTask);
} catch (Exception e) {
log.error(e.getMessage(), e);
......@@ -91,7 +102,7 @@ public class ExportTaskJob implements Job {
/**
* 下载excel文件,并检查excel文件
*/
private void checkFile(@NotNull BarrageCollectionInfo collectionInfo) throws IOException {
private void checkFile(@NotNull BarrageCollectionInfo collectionInfo) throws IOException, SchedulerException {
String url = TASK_URL + "/" + collectionInfo.getId() + "/barrage";
HttpGet get = new HttpGet(url);
HttpResponse response = HTTP_CLIENT.execute(get);
......@@ -101,6 +112,9 @@ public class ExportTaskJob implements Job {
ServerResponseMessage responseMessage = jsonMapper.readValue(response.getEntity().getContent(), ServerResponseMessage.class);
log.info(responseMessage.getMessage());
responseMessage.setName(collectionInfo.getName());
// 处理409资源冲突
this.conflict(responseMessage);
// 保存响应
this.saveResponseMessage(responseMessage);
} else {
final File cacheDir = new File(CACHE_DIR, collectionInfo.getId());
......@@ -193,4 +207,15 @@ public class ExportTaskJob implements Job {
resultMapper.insert(exportResult);
}
}
/**
* 处理409资源冲突,随机一个时间再导出一次
*/
private void conflict(@NotNull ServerResponseMessage responseMessage) throws SchedulerException {
if (responseMessage.getCode() != 409) return;
TriggerBuilder<Trigger> triggerBuilder = TriggerBuilder.newTrigger();
triggerBuilder.withDescription("导出弹幕测试");
triggerBuilder.startAt(TimeUtil.randmoDate(2));
SCHEDULER.scheduleJob(this.detail, triggerBuilder.build());
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment