ThreadPool manager rework.

This commit is contained in:
MobiusDev
2017-08-23 05:23:31 +00:00
parent 374c53df4b
commit b77de360af
718 changed files with 3180 additions and 7193 deletions

View File

@@ -43,7 +43,7 @@ public class AttackStanceTaskManager
*/
protected AttackStanceTaskManager()
{
ThreadPoolManager.getInstance().scheduleAiAtFixedRate(new FightModeScheduler(), 0, 1000);
ThreadPoolManager.scheduleAtFixedRate(new FightModeScheduler(), 0, 1000);
}
/**

View File

@@ -223,31 +223,37 @@ public final class TaskManager
private boolean launchTask(ExecutedTask task)
{
final ThreadPoolManager scheduler = ThreadPoolManager.getInstance();
final TaskTypes type = task.getType();
long delay, interval;
switch (type)
{
case TYPE_STARTUP:
{
task.run();
return false;
}
case TYPE_SHEDULED:
{
delay = Long.valueOf(task.getParams()[0]);
task.scheduled = scheduler.scheduleGeneral(task, delay);
task.scheduled = ThreadPoolManager.schedule(task, delay);
return true;
}
case TYPE_FIXED_SHEDULED:
{
delay = Long.valueOf(task.getParams()[0]);
interval = Long.valueOf(task.getParams()[1]);
task.scheduled = scheduler.scheduleGeneralAtFixedRate(task, delay, interval);
task.scheduled = ThreadPoolManager.scheduleAtFixedRate(task, delay, interval);
return true;
}
case TYPE_TIME:
{
try
{
final Date desired = DateFormat.getInstance().parse(task.getParams()[0]);
final long diff = desired.getTime() - System.currentTimeMillis();
if (diff >= 0)
{
task.scheduled = scheduler.scheduleGeneral(task, diff);
task.scheduled = ThreadPoolManager.schedule(task, diff);
return true;
}
LOGGER.info("Task " + task.getId() + " is obsoleted.");
@@ -256,7 +262,9 @@ public final class TaskManager
{
}
break;
}
case TYPE_SPECIAL:
{
final ScheduledFuture<?> result = task.getTask().launchSpecial(task);
if (result != null)
{
@@ -264,7 +272,9 @@ public final class TaskManager
return true;
}
break;
}
case TYPE_GLOBAL_TASK:
{
interval = Long.valueOf(task.getParams()[0]) * 86400000L;
final String[] hour = task.getParams()[1].split(":");
@@ -296,10 +306,13 @@ public final class TaskManager
{
delay += interval;
}
task.scheduled = scheduler.scheduleGeneralAtFixedRate(task, delay, interval);
task.scheduled = ThreadPoolManager.scheduleAtFixedRate(task, delay, interval);
return true;
}
default:
{
return false;
}
}
return false;
}