Browse Source

add A8kDebugTaskExecutorService

tags/v0
zhaohe 1 year ago
parent
commit
57f99fec8c
  1. 9
      src/main/java/a8k/appbean/DebugTask.java
  2. 19
      src/main/java/a8k/appbean/DebugTaskContext.java
  3. 43
      src/main/java/a8k/service/A8kDebugTaskExecutorService.java
  4. 9
      src/main/java/a8k/service/A8kStateMgrService.java
  5. 16
      src/main/java/a8k/service/DebugTaskSchedulerService.java

9
src/main/java/a8k/appbean/DebugTask.java

@ -1,9 +0,0 @@
package a8k.appbean;
public interface DebugTask {
public void run(DebugTaskContext cxt);
public void onStop(DebugTaskContext cxt);
public void onException(DebugTaskContext cxt, Exception e);
}

19
src/main/java/a8k/appbean/DebugTaskContext.java

@ -1,19 +0,0 @@
package a8k.appbean;
import java.util.HashMap;
import java.util.Map;
public class DebugTaskContext {
Map<String, Object> vals = new HashMap<>();
void setContext(String key, Object val) {
vals.put(key, val);
}
public <T> T getContext(String key) {
return (T) vals.get(key);
}
}

43
src/main/java/a8k/service/A8kDebugTaskExecutorService.java

@ -0,0 +1,43 @@
package a8k.service;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;
@Component
public class A8kDebugTaskExecutorService {
public static final Logger logger = LoggerFactory.getLogger(A8kDebugTaskExecutorService.class);
Thread task;
synchronized void exec(Runnable runnable) {
if (task != null) {
task.interrupt();
try {
task.join();
} catch (InterruptedException ignored) {
return;
}
}
task = new Thread(runnable);
task.start();
}
synchronized void stop() {
try {
task.join();
task = null;
} catch (InterruptedException e) {
logger.error(e.getMessage());
}
}
synchronized boolean isRunning() {
if (task == null) {
return false;
}
return task.isAlive();
}
}

9
src/main/java/a8k/service/A8kStateMgrService.java

@ -0,0 +1,9 @@
package a8k.service;
import org.springframework.stereotype.Component;
@Component
public class A8kStateMgrService {
}

16
src/main/java/a8k/service/DebugTaskSchedulerService.java

@ -1,16 +0,0 @@
package a8k.service;
public class DebugTaskSchedulerService {
public void stop(){
}
public void start(){
}
}
Loading…
Cancel
Save