任务相关
This commit is contained in:
parent
3f1fd98f42
commit
b8b67c1d3e
|
@ -27,16 +27,14 @@ import org.springframework.web.reactive.function.client.WebClient;
|
||||||
|
|
||||||
public abstract class AbtParentTask implements TaskAction {
|
public abstract class AbtParentTask implements TaskAction {
|
||||||
|
|
||||||
protected final AtomicLong duringTime = new AtomicLong(0);
|
|
||||||
protected final ScheduledExecutorService schedule = Executors.newScheduledThreadPool(
|
|
||||||
1);
|
|
||||||
protected ScheduledFuture<?> scheduledFuture;
|
|
||||||
//任务数据
|
//任务数据
|
||||||
protected final ScenarioTask scenarioTask;
|
protected final ScenarioTask scenarioTask;
|
||||||
|
|
||||||
protected final String roomId;
|
protected final String roomId;
|
||||||
protected WebClient webClient = WebClient.create();
|
protected WebClient webClient = WebClient.create();
|
||||||
ThreadPoolExecutor executor = new ThreadPoolExecutor(
|
protected ThreadPoolExecutor executor = new ThreadPoolExecutor(
|
||||||
5, // 核心线程数
|
5, // 核心线程数
|
||||||
10, // 最大线程数
|
10, // 最大线程数
|
||||||
60L, // 空闲线程存活时间
|
60L, // 空闲线程存活时间
|
||||||
|
@ -52,20 +50,8 @@ public abstract class AbtParentTask implements TaskAction {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void start() {
|
|
||||||
scheduledFuture = schedule.scheduleAtFixedRate(() -> {
|
|
||||||
ScenarioWsParam scenarioWsParam = Global.roomParamMap.get(
|
|
||||||
scenarioTask.getScenarioId() + "_" + roomId);
|
|
||||||
if (scenarioWsParam == null) {
|
|
||||||
duringTime.getAndSet(1);
|
|
||||||
} else {
|
|
||||||
duringTime.getAndSet(scenarioWsParam.getMag());
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}, 0, 1, TimeUnit.SECONDS);
|
|
||||||
}
|
|
||||||
|
|
||||||
protected abstract void finished();
|
protected abstract void finished();
|
||||||
|
|
||||||
protected abstract void setMag(int mag);
|
protected abstract void setMag(int mag);
|
||||||
|
@ -85,13 +71,9 @@ public abstract class AbtParentTask implements TaskAction {
|
||||||
return scenarioTask.getTaskType();
|
return scenarioTask.getTaskType();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void cancelAllTask() {
|
|
||||||
if (scheduledFuture != null) {
|
|
||||||
scheduledFuture.cancel(true);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
protected abstract void business();
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// 自定义线程工厂
|
// 自定义线程工厂
|
||||||
|
|
|
@ -23,14 +23,8 @@ public class BattleRootTask extends AbtParentTask {
|
||||||
public void doSomeThing() {
|
public void doSomeThing() {
|
||||||
//会知道想定ID, resourceId;
|
//会知道想定ID, resourceId;
|
||||||
}
|
}
|
||||||
//固定间隔执行
|
|
||||||
@Override
|
|
||||||
protected void business() {
|
|
||||||
// Global.roomParamMap.get(scenarioTask.getScenarioId() + "," + this.roomId); 可以获取当前想定的步长
|
|
||||||
//战斗需要消耗弹药 按时间消耗,30秒
|
|
||||||
//人员消耗
|
|
||||||
//可能会产生需求,保障需求
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -11,6 +11,9 @@ import com.hivekion.room.func.TaskAction;
|
||||||
import com.hivekion.scenario.entity.ScenarioTask;
|
import com.hivekion.scenario.entity.ScenarioTask;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.TreeMap;
|
import java.util.TreeMap;
|
||||||
|
import java.util.concurrent.Executors;
|
||||||
|
import java.util.concurrent.ScheduledExecutorService;
|
||||||
|
import java.util.concurrent.ScheduledFuture;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.core.env.Environment;
|
import org.springframework.core.env.Environment;
|
||||||
|
|
||||||
|
@ -26,7 +29,9 @@ import org.springframework.core.env.Environment;
|
||||||
@Slf4j
|
@Slf4j
|
||||||
public class MoveRootTask extends AbtParentTask implements TaskAction {
|
public class MoveRootTask extends AbtParentTask implements TaskAction {
|
||||||
|
|
||||||
|
protected final ScheduledExecutorService schedule = Executors.newScheduledThreadPool(
|
||||||
|
1);
|
||||||
|
protected ScheduledFuture<?> scheduledFuture;
|
||||||
private final double SPEED = 170;
|
private final double SPEED = 170;
|
||||||
private double accumulatedDistance = 0;
|
private double accumulatedDistance = 0;
|
||||||
|
|
||||||
|
@ -84,10 +89,7 @@ public class MoveRootTask extends AbtParentTask implements TaskAction {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void business() {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -28,10 +28,7 @@ public class SupplierTask extends AbtParentTask implements TaskAction {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void business() {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
Loading…
Reference in New Issue
Block a user