|
|
@ -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(); |
|
|
|
} |
|
|
|
|
|
|
|
} |