ThreadPool manager rework.
This commit is contained in:
@@ -43,7 +43,7 @@ public class AttackStanceTaskManager
|
||||
*/
|
||||
protected AttackStanceTaskManager()
|
||||
{
|
||||
ThreadPoolManager.getInstance().scheduleAiAtFixedRate(new FightModeScheduler(), 0, 1000);
|
||||
ThreadPoolManager.scheduleAtFixedRate(new FightModeScheduler(), 0, 1000);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@@ -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;
|
||||
}
|
||||
|
Reference in New Issue
Block a user