Commit 2a685527 by 朽木不可雕也

修改作业调度方式

parent 1c9c592d
...@@ -4,14 +4,8 @@ import com.zhiweidata.automatictest.barragecrawlerserver.createtasks.BiliBiliCre ...@@ -4,14 +4,8 @@ import com.zhiweidata.automatictest.barragecrawlerserver.createtasks.BiliBiliCre
import com.zhiweidata.automatictest.barragecrawlerserver.createtasks.DouyuCreateTaskJob; import com.zhiweidata.automatictest.barragecrawlerserver.createtasks.DouyuCreateTaskJob;
import com.zhiweidata.automatictest.barragecrawlerserver.createtasks.HuyaCreateTaskJob; import com.zhiweidata.automatictest.barragecrawlerserver.createtasks.HuyaCreateTaskJob;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.quartz.Job;
import org.quartz.JobBuilder;
import org.quartz.SchedulerException;
import org.quartz.SimpleScheduleBuilder;
import org.quartz.Trigger;
import org.quartz.TriggerBuilder;
import static com.zhiweidata.automatictest.publics.BeanContainer.SCHEDULER; import static com.zhiweidata.automatictest.barragecrawlerserver.createtasks.CreateTaskJob.createJob;
/** /**
* 弹幕采集自动化测试模块 * 弹幕采集自动化测试模块
...@@ -28,25 +22,11 @@ public class BarrageCrawlerServerTest implements Runnable { ...@@ -28,25 +22,11 @@ public class BarrageCrawlerServerTest implements Runnable {
public void run() { public void run() {
try { try {
// 虎牙直播 // 虎牙直播
this.createJob(HuyaCreateTaskJob.class, "虎牙直播", "huya"); createJob(HuyaCreateTaskJob.class, "虎牙直播", "huya");
this.createJob(BiliBiliCreateTaskJob.class, "BILIBILI直播", "bilibili"); createJob(BiliBiliCreateTaskJob.class, "BILIBILI直播", "bilibili");
this.createJob(DouyuCreateTaskJob.class, "斗鱼直播", "douyu"); createJob(DouyuCreateTaskJob.class, "斗鱼直播", "douyu");
} catch (Exception e) { } catch (Exception e) {
log.error(e.getMessage(), e); log.error(e.getMessage(), e);
} }
} }
private <T extends Job> void createJob(Class<T> tClass, String platform, String name) throws SchedulerException {
JobBuilder jobBuilder = JobBuilder.newJob(tClass);
String description = "定时从" + platform + "首页获得直播间地址,并发送到弹幕采集服务器进行测试。";
jobBuilder.withDescription(description);
final String group = "create-live-task";
jobBuilder.withIdentity(name, group);
TriggerBuilder<Trigger> triggerBuilder = TriggerBuilder.newTrigger();
triggerBuilder.withDescription(description);
triggerBuilder.withIdentity(name, group);
triggerBuilder.withSchedule(SimpleScheduleBuilder.repeatHourlyForever(5));
triggerBuilder.startNow();
SCHEDULER.scheduleJob(jobBuilder.build(), triggerBuilder.build());
}
} }
...@@ -2,7 +2,6 @@ package com.zhiweidata.automatictest.barragecrawlerserver.createtasks; ...@@ -2,7 +2,6 @@ package com.zhiweidata.automatictest.barragecrawlerserver.createtasks;
import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.ObjectMapper;
import com.zhiweidata.automatictest.barragecrawlerserver.entity.BarrageCollectionTestTask; import com.zhiweidata.automatictest.barragecrawlerserver.entity.BarrageCollectionTestTask;
import com.zhiweidata.automatictest.barragecrawlerserver.exporttasks.ExportTaskJob;
import java.net.URL; import java.net.URL;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
...@@ -28,6 +27,9 @@ public class BiliBiliCreateTaskJob extends CreateTaskJob { ...@@ -28,6 +27,9 @@ public class BiliBiliCreateTaskJob extends CreateTaskJob {
@Override @Override
public void execute(JobExecutionContext jobExecutionContext) { public void execute(JobExecutionContext jobExecutionContext) {
try { try {
// 创建下一个随机测试作业
createJob(BiliBiliCreateTaskJob.class, "BILIBILI直播", "bilibili");
Map<?, ?> liveJson = new ObjectMapper().readValue(new URL("https://api.live.bilibili.com/xlive/web-interface/v1/index/getList?platform=web"), Map.class); Map<?, ?> liveJson = new ObjectMapper().readValue(new URL("https://api.live.bilibili.com/xlive/web-interface/v1/index/getList?platform=web"), Map.class);
liveJson = (Map<?, ?>) requireNonNull(liveJson.get("data")); liveJson = (Map<?, ?>) requireNonNull(liveJson.get("data"));
final List<?> moduleList = (List<?>) liveJson.get("room_list"); final List<?> moduleList = (List<?>) liveJson.get("room_list");
......
...@@ -43,6 +43,23 @@ import static java.util.Objects.nonNull; ...@@ -43,6 +43,23 @@ import static java.util.Objects.nonNull;
@SuppressWarnings({"JavaDoc"}) @SuppressWarnings({"JavaDoc"})
public abstract class CreateTaskJob implements Job { public abstract class CreateTaskJob implements Job {
/** /**
* 创建弹幕采集测试作业
*/
public static <T extends Job> void createJob(Class<T> tClass, String platform, String name) throws SchedulerException {
JobBuilder jobBuilder = JobBuilder.newJob(tClass);
String description = "定时从" + platform + "首页获得直播间地址,并发送到弹幕采集服务器进行测试。";
jobBuilder.withDescription(description);
final String group = "create-live-task";
jobBuilder.withIdentity(name, group);
TriggerBuilder<Trigger> triggerBuilder = TriggerBuilder.newTrigger();
triggerBuilder.withDescription(description);
triggerBuilder.withIdentity(name, group);
triggerBuilder.startAt(TimeUtil.randmoDate(1));
triggerBuilder.startNow();
SCHEDULER.scheduleJob(jobBuilder.build(), triggerBuilder.build());
}
/**
* 创建直播间的弹幕采集,和弹幕导出测试任务 * 创建直播间的弹幕采集,和弹幕导出测试任务
*/ */
protected final void createTasks(@NotNull Set<String> liveUrls) { protected final void createTasks(@NotNull Set<String> liveUrls) {
......
...@@ -38,6 +38,9 @@ public class DouyuCreateTaskJob extends CreateTaskJob { ...@@ -38,6 +38,9 @@ public class DouyuCreateTaskJob extends CreateTaskJob {
@Override @Override
public void execute(JobExecutionContext jobExecutionContext) { public void execute(JobExecutionContext jobExecutionContext) {
try { try {
// 下一个随机测试作业
createJob(DouyuCreateTaskJob.class, "斗鱼直播", "douyu");
HttpResponse response = HTTP_CLIENT.execute(new HttpGet("https://www.douyu.com/")); HttpResponse response = HTTP_CLIENT.execute(new HttpGet("https://www.douyu.com/"));
String html = EntityUtils.toString(response.getEntity()); String html = EntityUtils.toString(response.getEntity());
Set<String> liveUrls = this.getLiveUrl(html); Set<String> liveUrls = this.getLiveUrl(html);
......
...@@ -44,6 +44,9 @@ public class HuyaCreateTaskJob extends CreateTaskJob { ...@@ -44,6 +44,9 @@ public class HuyaCreateTaskJob extends CreateTaskJob {
@Override @Override
public void execute(JobExecutionContext jobExecutionContext) { public void execute(JobExecutionContext jobExecutionContext) {
try { try {
// 创建下一个随机测试作业
createJob(BiliBiliCreateTaskJob.class, "BILIBILI直播", "bilibili");
HttpGet get = new HttpGet("https://www.huya.com/"); HttpGet get = new HttpGet("https://www.huya.com/");
HttpResponse response = HTTP_CLIENT.execute(get); HttpResponse response = HTTP_CLIENT.execute(get);
StatusLine line = response.getStatusLine(); StatusLine line = response.getStatusLine();
......
...@@ -26,6 +26,7 @@ import org.apache.http.entity.ContentType; ...@@ -26,6 +26,7 @@ import org.apache.http.entity.ContentType;
import org.apache.http.util.EntityUtils; import org.apache.http.util.EntityUtils;
import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSession;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import org.quartz.DisallowConcurrentExecution;
import org.quartz.Job; import org.quartz.Job;
import org.quartz.JobDataMap; import org.quartz.JobDataMap;
import org.quartz.JobDetail; import org.quartz.JobDetail;
...@@ -52,6 +53,7 @@ import static java.util.Objects.requireNonNull; ...@@ -52,6 +53,7 @@ import static java.util.Objects.requireNonNull;
* @ide IntelliJ IDEA * @ide IntelliJ IDEA
*/ */
@Slf4j @Slf4j
@DisallowConcurrentExecution
@SuppressWarnings({"JavaDoc", "GrazieInspection"}) @SuppressWarnings({"JavaDoc", "GrazieInspection"})
public class ExportTaskJob implements Job { public class ExportTaskJob implements Job {
/** /**
......
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