Addition of ThreadsForLoading configuration.
This commit is contained in:
parent
955c2eff68
commit
fc6c31df53
@ -145,6 +145,10 @@ ThreadsPerInstantThreadPool = 2
|
||||
# Default: 2
|
||||
UrgentPacketThreadCoreSize = 2
|
||||
|
||||
# Use threads to decrease startup time.
|
||||
# Default: False
|
||||
ThreadsForLoading = False
|
||||
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# Dead Lock Detector (separate thread for detecting deadlocks)
|
||||
|
@ -430,6 +430,7 @@ public final class Config
|
||||
public static int INSTANT_THREAD_POOL_COUNT;
|
||||
public static int THREADS_PER_INSTANT_THREAD_POOL;
|
||||
public static int IO_PACKET_THREAD_CORE_SIZE;
|
||||
public static boolean THREADS_FOR_LOADING;
|
||||
public static boolean DEADLOCK_DETECTOR;
|
||||
public static int DEADLOCK_CHECK_INTERVAL;
|
||||
public static boolean RESTART_ON_DEADLOCK;
|
||||
@ -1284,6 +1285,7 @@ public final class Config
|
||||
}
|
||||
THREADS_PER_INSTANT_THREAD_POOL = serverSettings.getInt("ThreadsPerInstantThreadPool", 2);
|
||||
IO_PACKET_THREAD_CORE_SIZE = serverSettings.getInt("UrgentPacketThreadCoreSize", 2);
|
||||
THREADS_FOR_LOADING = serverSettings.getBoolean("ThreadsForLoading", false);
|
||||
|
||||
DEADLOCK_DETECTOR = serverSettings.getBoolean("DeadLockDetector", true);
|
||||
DEADLOCK_CHECK_INTERVAL = serverSettings.getInt("DeadLockCheckInterval", 20);
|
||||
|
@ -165,19 +165,21 @@ public interface IXmlReader
|
||||
return false;
|
||||
}
|
||||
|
||||
if (Config.THREADS_FOR_LOADING)
|
||||
{
|
||||
final List<ScheduledFuture<?>> jobs = new CopyOnWriteArrayList<>();
|
||||
final File[] listOfFiles = dir.listFiles();
|
||||
for (File f : listOfFiles)
|
||||
for (File file : listOfFiles)
|
||||
{
|
||||
if (recursive && f.isDirectory())
|
||||
if (recursive && file.isDirectory())
|
||||
{
|
||||
parseDirectory(f, recursive);
|
||||
parseDirectory(file, recursive);
|
||||
}
|
||||
else if (getCurrentFileFilter().accept(f))
|
||||
else if (getCurrentFileFilter().accept(file))
|
||||
{
|
||||
jobs.add(ThreadPool.schedule(() ->
|
||||
{
|
||||
parseFile(f);
|
||||
parseFile(file);
|
||||
}, 0));
|
||||
}
|
||||
}
|
||||
@ -191,6 +193,22 @@ public interface IXmlReader
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
final File[] listOfFiles = dir.listFiles();
|
||||
for (File file : listOfFiles)
|
||||
{
|
||||
if (recursive && file.isDirectory())
|
||||
{
|
||||
parseDirectory(file, recursive);
|
||||
}
|
||||
else if (getCurrentFileFilter().accept(file))
|
||||
{
|
||||
parseFile(file);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
@ -95,6 +95,9 @@ public class SpawnsData implements IXmlReader
|
||||
}
|
||||
|
||||
LOGGER.info(getClass().getSimpleName() + ": Initializing spawns...");
|
||||
|
||||
if (Config.THREADS_FOR_LOADING)
|
||||
{
|
||||
final List<ScheduledFuture<?>> jobs = new CopyOnWriteArrayList<>();
|
||||
for (SpawnTemplate template : _spawns)
|
||||
{
|
||||
@ -117,6 +120,19 @@ public class SpawnsData implements IXmlReader
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
for (SpawnTemplate template : _spawns)
|
||||
{
|
||||
if (template.isSpawningByDefault())
|
||||
{
|
||||
template.spawnAll(null);
|
||||
template.notifyActivate();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
LOGGER.info(getClass().getSimpleName() + ": All spawns has been initialized!");
|
||||
}
|
||||
|
||||
|
@ -69,6 +69,9 @@ public class DocumentEngine
|
||||
public List<Item> loadItems()
|
||||
{
|
||||
final List<Item> list = new CopyOnWriteArrayList<>();
|
||||
|
||||
if (Config.THREADS_FOR_LOADING)
|
||||
{
|
||||
final List<ScheduledFuture<?>> jobs = new CopyOnWriteArrayList<>();
|
||||
for (File file : _itemFiles)
|
||||
{
|
||||
@ -89,6 +92,17 @@ public class DocumentEngine
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
for (File file : _itemFiles)
|
||||
{
|
||||
final DocumentItem document = new DocumentItem(file);
|
||||
document.parse();
|
||||
list.addAll(document.getItemList());
|
||||
}
|
||||
}
|
||||
|
||||
return list;
|
||||
}
|
||||
|
||||
|
@ -145,6 +145,10 @@ ThreadsPerInstantThreadPool = 2
|
||||
# Default: 2
|
||||
UrgentPacketThreadCoreSize = 2
|
||||
|
||||
# Use threads to decrease startup time.
|
||||
# Default: False
|
||||
ThreadsForLoading = False
|
||||
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# Dead Lock Detector (separate thread for detecting deadlocks)
|
||||
|
@ -436,6 +436,7 @@ public final class Config
|
||||
public static int INSTANT_THREAD_POOL_COUNT;
|
||||
public static int THREADS_PER_INSTANT_THREAD_POOL;
|
||||
public static int IO_PACKET_THREAD_CORE_SIZE;
|
||||
public static boolean THREADS_FOR_LOADING;
|
||||
public static boolean DEADLOCK_DETECTOR;
|
||||
public static int DEADLOCK_CHECK_INTERVAL;
|
||||
public static boolean RESTART_ON_DEADLOCK;
|
||||
@ -1291,6 +1292,7 @@ public final class Config
|
||||
}
|
||||
THREADS_PER_INSTANT_THREAD_POOL = serverSettings.getInt("ThreadsPerInstantThreadPool", 2);
|
||||
IO_PACKET_THREAD_CORE_SIZE = serverSettings.getInt("UrgentPacketThreadCoreSize", 2);
|
||||
THREADS_FOR_LOADING = serverSettings.getBoolean("ThreadsForLoading", false);
|
||||
|
||||
DEADLOCK_DETECTOR = serverSettings.getBoolean("DeadLockDetector", true);
|
||||
DEADLOCK_CHECK_INTERVAL = serverSettings.getInt("DeadLockCheckInterval", 20);
|
||||
|
@ -165,19 +165,21 @@ public interface IXmlReader
|
||||
return false;
|
||||
}
|
||||
|
||||
if (Config.THREADS_FOR_LOADING)
|
||||
{
|
||||
final List<ScheduledFuture<?>> jobs = new CopyOnWriteArrayList<>();
|
||||
final File[] listOfFiles = dir.listFiles();
|
||||
for (File f : listOfFiles)
|
||||
for (File file : listOfFiles)
|
||||
{
|
||||
if (recursive && f.isDirectory())
|
||||
if (recursive && file.isDirectory())
|
||||
{
|
||||
parseDirectory(f, recursive);
|
||||
parseDirectory(file, recursive);
|
||||
}
|
||||
else if (getCurrentFileFilter().accept(f))
|
||||
else if (getCurrentFileFilter().accept(file))
|
||||
{
|
||||
jobs.add(ThreadPool.schedule(() ->
|
||||
{
|
||||
parseFile(f);
|
||||
parseFile(file);
|
||||
}, 0));
|
||||
}
|
||||
}
|
||||
@ -191,6 +193,22 @@ public interface IXmlReader
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
final File[] listOfFiles = dir.listFiles();
|
||||
for (File file : listOfFiles)
|
||||
{
|
||||
if (recursive && file.isDirectory())
|
||||
{
|
||||
parseDirectory(file, recursive);
|
||||
}
|
||||
else if (getCurrentFileFilter().accept(file))
|
||||
{
|
||||
parseFile(file);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
@ -95,6 +95,9 @@ public class SpawnsData implements IXmlReader
|
||||
}
|
||||
|
||||
LOGGER.info(getClass().getSimpleName() + ": Initializing spawns...");
|
||||
|
||||
if (Config.THREADS_FOR_LOADING)
|
||||
{
|
||||
final List<ScheduledFuture<?>> jobs = new CopyOnWriteArrayList<>();
|
||||
for (SpawnTemplate template : _spawns)
|
||||
{
|
||||
@ -117,6 +120,19 @@ public class SpawnsData implements IXmlReader
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
for (SpawnTemplate template : _spawns)
|
||||
{
|
||||
if (template.isSpawningByDefault())
|
||||
{
|
||||
template.spawnAll(null);
|
||||
template.notifyActivate();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
LOGGER.info(getClass().getSimpleName() + ": All spawns has been initialized!");
|
||||
}
|
||||
|
||||
|
@ -69,6 +69,9 @@ public class DocumentEngine
|
||||
public List<Item> loadItems()
|
||||
{
|
||||
final List<Item> list = new CopyOnWriteArrayList<>();
|
||||
|
||||
if (Config.THREADS_FOR_LOADING)
|
||||
{
|
||||
final List<ScheduledFuture<?>> jobs = new CopyOnWriteArrayList<>();
|
||||
for (File file : _itemFiles)
|
||||
{
|
||||
@ -89,6 +92,17 @@ public class DocumentEngine
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
for (File file : _itemFiles)
|
||||
{
|
||||
final DocumentItem document = new DocumentItem(file);
|
||||
document.parse();
|
||||
list.addAll(document.getItemList());
|
||||
}
|
||||
}
|
||||
|
||||
return list;
|
||||
}
|
||||
|
||||
|
@ -145,6 +145,10 @@ ThreadsPerInstantThreadPool = 2
|
||||
# Default: 2
|
||||
UrgentPacketThreadCoreSize = 2
|
||||
|
||||
# Use threads to decrease startup time.
|
||||
# Default: False
|
||||
ThreadsForLoading = False
|
||||
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# Dead Lock Detector (separate thread for detecting deadlocks)
|
||||
|
@ -436,6 +436,7 @@ public final class Config
|
||||
public static int INSTANT_THREAD_POOL_COUNT;
|
||||
public static int THREADS_PER_INSTANT_THREAD_POOL;
|
||||
public static int IO_PACKET_THREAD_CORE_SIZE;
|
||||
public static boolean THREADS_FOR_LOADING;
|
||||
public static boolean DEADLOCK_DETECTOR;
|
||||
public static int DEADLOCK_CHECK_INTERVAL;
|
||||
public static boolean RESTART_ON_DEADLOCK;
|
||||
@ -1299,6 +1300,7 @@ public final class Config
|
||||
}
|
||||
THREADS_PER_INSTANT_THREAD_POOL = serverSettings.getInt("ThreadsPerInstantThreadPool", 2);
|
||||
IO_PACKET_THREAD_CORE_SIZE = serverSettings.getInt("UrgentPacketThreadCoreSize", 2);
|
||||
THREADS_FOR_LOADING = serverSettings.getBoolean("ThreadsForLoading", false);
|
||||
|
||||
DEADLOCK_DETECTOR = serverSettings.getBoolean("DeadLockDetector", true);
|
||||
DEADLOCK_CHECK_INTERVAL = serverSettings.getInt("DeadLockCheckInterval", 20);
|
||||
|
@ -165,19 +165,21 @@ public interface IXmlReader
|
||||
return false;
|
||||
}
|
||||
|
||||
if (Config.THREADS_FOR_LOADING)
|
||||
{
|
||||
final List<ScheduledFuture<?>> jobs = new CopyOnWriteArrayList<>();
|
||||
final File[] listOfFiles = dir.listFiles();
|
||||
for (File f : listOfFiles)
|
||||
for (File file : listOfFiles)
|
||||
{
|
||||
if (recursive && f.isDirectory())
|
||||
if (recursive && file.isDirectory())
|
||||
{
|
||||
parseDirectory(f, recursive);
|
||||
parseDirectory(file, recursive);
|
||||
}
|
||||
else if (getCurrentFileFilter().accept(f))
|
||||
else if (getCurrentFileFilter().accept(file))
|
||||
{
|
||||
jobs.add(ThreadPool.schedule(() ->
|
||||
{
|
||||
parseFile(f);
|
||||
parseFile(file);
|
||||
}, 0));
|
||||
}
|
||||
}
|
||||
@ -191,6 +193,22 @@ public interface IXmlReader
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
final File[] listOfFiles = dir.listFiles();
|
||||
for (File file : listOfFiles)
|
||||
{
|
||||
if (recursive && file.isDirectory())
|
||||
{
|
||||
parseDirectory(file, recursive);
|
||||
}
|
||||
else if (getCurrentFileFilter().accept(file))
|
||||
{
|
||||
parseFile(file);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
@ -95,6 +95,9 @@ public class SpawnsData implements IXmlReader
|
||||
}
|
||||
|
||||
LOGGER.info(getClass().getSimpleName() + ": Initializing spawns...");
|
||||
|
||||
if (Config.THREADS_FOR_LOADING)
|
||||
{
|
||||
final List<ScheduledFuture<?>> jobs = new CopyOnWriteArrayList<>();
|
||||
for (SpawnTemplate template : _spawns)
|
||||
{
|
||||
@ -117,6 +120,19 @@ public class SpawnsData implements IXmlReader
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
for (SpawnTemplate template : _spawns)
|
||||
{
|
||||
if (template.isSpawningByDefault())
|
||||
{
|
||||
template.spawnAll(null);
|
||||
template.notifyActivate();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
LOGGER.info(getClass().getSimpleName() + ": All spawns has been initialized!");
|
||||
}
|
||||
|
||||
|
@ -69,6 +69,9 @@ public class DocumentEngine
|
||||
public List<Item> loadItems()
|
||||
{
|
||||
final List<Item> list = new CopyOnWriteArrayList<>();
|
||||
|
||||
if (Config.THREADS_FOR_LOADING)
|
||||
{
|
||||
final List<ScheduledFuture<?>> jobs = new CopyOnWriteArrayList<>();
|
||||
for (File file : _itemFiles)
|
||||
{
|
||||
@ -89,6 +92,17 @@ public class DocumentEngine
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
for (File file : _itemFiles)
|
||||
{
|
||||
final DocumentItem document = new DocumentItem(file);
|
||||
document.parse();
|
||||
list.addAll(document.getItemList());
|
||||
}
|
||||
}
|
||||
|
||||
return list;
|
||||
}
|
||||
|
||||
|
@ -145,6 +145,10 @@ ThreadsPerInstantThreadPool = 2
|
||||
# Default: 2
|
||||
UrgentPacketThreadCoreSize = 2
|
||||
|
||||
# Use threads to decrease startup time.
|
||||
# Default: False
|
||||
ThreadsForLoading = False
|
||||
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# Dead Lock Detector (separate thread for detecting deadlocks)
|
||||
|
@ -430,6 +430,7 @@ public final class Config
|
||||
public static int INSTANT_THREAD_POOL_COUNT;
|
||||
public static int THREADS_PER_INSTANT_THREAD_POOL;
|
||||
public static int IO_PACKET_THREAD_CORE_SIZE;
|
||||
public static boolean THREADS_FOR_LOADING;
|
||||
public static boolean DEADLOCK_DETECTOR;
|
||||
public static int DEADLOCK_CHECK_INTERVAL;
|
||||
public static boolean RESTART_ON_DEADLOCK;
|
||||
@ -1292,6 +1293,7 @@ public final class Config
|
||||
}
|
||||
THREADS_PER_INSTANT_THREAD_POOL = serverSettings.getInt("ThreadsPerInstantThreadPool", 2);
|
||||
IO_PACKET_THREAD_CORE_SIZE = serverSettings.getInt("UrgentPacketThreadCoreSize", 2);
|
||||
THREADS_FOR_LOADING = serverSettings.getBoolean("ThreadsForLoading", false);
|
||||
|
||||
DEADLOCK_DETECTOR = serverSettings.getBoolean("DeadLockDetector", true);
|
||||
DEADLOCK_CHECK_INTERVAL = serverSettings.getInt("DeadLockCheckInterval", 20);
|
||||
|
@ -165,19 +165,21 @@ public interface IXmlReader
|
||||
return false;
|
||||
}
|
||||
|
||||
if (Config.THREADS_FOR_LOADING)
|
||||
{
|
||||
final List<ScheduledFuture<?>> jobs = new CopyOnWriteArrayList<>();
|
||||
final File[] listOfFiles = dir.listFiles();
|
||||
for (File f : listOfFiles)
|
||||
for (File file : listOfFiles)
|
||||
{
|
||||
if (recursive && f.isDirectory())
|
||||
if (recursive && file.isDirectory())
|
||||
{
|
||||
parseDirectory(f, recursive);
|
||||
parseDirectory(file, recursive);
|
||||
}
|
||||
else if (getCurrentFileFilter().accept(f))
|
||||
else if (getCurrentFileFilter().accept(file))
|
||||
{
|
||||
jobs.add(ThreadPool.schedule(() ->
|
||||
{
|
||||
parseFile(f);
|
||||
parseFile(file);
|
||||
}, 0));
|
||||
}
|
||||
}
|
||||
@ -191,6 +193,22 @@ public interface IXmlReader
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
final File[] listOfFiles = dir.listFiles();
|
||||
for (File file : listOfFiles)
|
||||
{
|
||||
if (recursive && file.isDirectory())
|
||||
{
|
||||
parseDirectory(file, recursive);
|
||||
}
|
||||
else if (getCurrentFileFilter().accept(file))
|
||||
{
|
||||
parseFile(file);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
@ -95,6 +95,9 @@ public class SpawnsData implements IXmlReader
|
||||
}
|
||||
|
||||
LOGGER.info(getClass().getSimpleName() + ": Initializing spawns...");
|
||||
|
||||
if (Config.THREADS_FOR_LOADING)
|
||||
{
|
||||
final List<ScheduledFuture<?>> jobs = new CopyOnWriteArrayList<>();
|
||||
for (SpawnTemplate template : _spawns)
|
||||
{
|
||||
@ -117,6 +120,19 @@ public class SpawnsData implements IXmlReader
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
for (SpawnTemplate template : _spawns)
|
||||
{
|
||||
if (template.isSpawningByDefault())
|
||||
{
|
||||
template.spawnAll(null);
|
||||
template.notifyActivate();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
LOGGER.info(getClass().getSimpleName() + ": All spawns has been initialized!");
|
||||
}
|
||||
|
||||
|
@ -69,6 +69,9 @@ public class DocumentEngine
|
||||
public List<Item> loadItems()
|
||||
{
|
||||
final List<Item> list = new CopyOnWriteArrayList<>();
|
||||
|
||||
if (Config.THREADS_FOR_LOADING)
|
||||
{
|
||||
final List<ScheduledFuture<?>> jobs = new CopyOnWriteArrayList<>();
|
||||
for (File file : _itemFiles)
|
||||
{
|
||||
@ -89,6 +92,17 @@ public class DocumentEngine
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
for (File file : _itemFiles)
|
||||
{
|
||||
final DocumentItem document = new DocumentItem(file);
|
||||
document.parse();
|
||||
list.addAll(document.getItemList());
|
||||
}
|
||||
}
|
||||
|
||||
return list;
|
||||
}
|
||||
|
||||
|
@ -145,6 +145,10 @@ ThreadsPerInstantThreadPool = 2
|
||||
# Default: 2
|
||||
UrgentPacketThreadCoreSize = 2
|
||||
|
||||
# Use threads to decrease startup time.
|
||||
# Default: False
|
||||
ThreadsForLoading = False
|
||||
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# Dead Lock Detector (separate thread for detecting deadlocks)
|
||||
|
@ -425,6 +425,7 @@ public final class Config
|
||||
public static int INSTANT_THREAD_POOL_COUNT;
|
||||
public static int THREADS_PER_INSTANT_THREAD_POOL;
|
||||
public static int IO_PACKET_THREAD_CORE_SIZE;
|
||||
public static boolean THREADS_FOR_LOADING;
|
||||
public static boolean DEADLOCK_DETECTOR;
|
||||
public static int DEADLOCK_CHECK_INTERVAL;
|
||||
public static boolean RESTART_ON_DEADLOCK;
|
||||
@ -1287,6 +1288,7 @@ public final class Config
|
||||
}
|
||||
THREADS_PER_INSTANT_THREAD_POOL = serverSettings.getInt("ThreadsPerInstantThreadPool", 2);
|
||||
IO_PACKET_THREAD_CORE_SIZE = serverSettings.getInt("UrgentPacketThreadCoreSize", 2);
|
||||
THREADS_FOR_LOADING = serverSettings.getBoolean("ThreadsForLoading", false);
|
||||
|
||||
DEADLOCK_DETECTOR = serverSettings.getBoolean("DeadLockDetector", true);
|
||||
DEADLOCK_CHECK_INTERVAL = serverSettings.getInt("DeadLockCheckInterval", 20);
|
||||
|
@ -165,19 +165,21 @@ public interface IXmlReader
|
||||
return false;
|
||||
}
|
||||
|
||||
if (Config.THREADS_FOR_LOADING)
|
||||
{
|
||||
final List<ScheduledFuture<?>> jobs = new CopyOnWriteArrayList<>();
|
||||
final File[] listOfFiles = dir.listFiles();
|
||||
for (File f : listOfFiles)
|
||||
for (File file : listOfFiles)
|
||||
{
|
||||
if (recursive && f.isDirectory())
|
||||
if (recursive && file.isDirectory())
|
||||
{
|
||||
parseDirectory(f, recursive);
|
||||
parseDirectory(file, recursive);
|
||||
}
|
||||
else if (getCurrentFileFilter().accept(f))
|
||||
else if (getCurrentFileFilter().accept(file))
|
||||
{
|
||||
jobs.add(ThreadPool.schedule(() ->
|
||||
{
|
||||
parseFile(f);
|
||||
parseFile(file);
|
||||
}, 0));
|
||||
}
|
||||
}
|
||||
@ -191,6 +193,22 @@ public interface IXmlReader
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
final File[] listOfFiles = dir.listFiles();
|
||||
for (File file : listOfFiles)
|
||||
{
|
||||
if (recursive && file.isDirectory())
|
||||
{
|
||||
parseDirectory(file, recursive);
|
||||
}
|
||||
else if (getCurrentFileFilter().accept(file))
|
||||
{
|
||||
parseFile(file);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
@ -95,6 +95,9 @@ public class SpawnsData implements IXmlReader
|
||||
}
|
||||
|
||||
LOGGER.info(getClass().getSimpleName() + ": Initializing spawns...");
|
||||
|
||||
if (Config.THREADS_FOR_LOADING)
|
||||
{
|
||||
final List<ScheduledFuture<?>> jobs = new CopyOnWriteArrayList<>();
|
||||
for (SpawnTemplate template : _spawns)
|
||||
{
|
||||
@ -117,6 +120,19 @@ public class SpawnsData implements IXmlReader
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
for (SpawnTemplate template : _spawns)
|
||||
{
|
||||
if (template.isSpawningByDefault())
|
||||
{
|
||||
template.spawnAll(null);
|
||||
template.notifyActivate();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
LOGGER.info(getClass().getSimpleName() + ": All spawns has been initialized!");
|
||||
}
|
||||
|
||||
|
@ -69,6 +69,9 @@ public class DocumentEngine
|
||||
public List<Item> loadItems()
|
||||
{
|
||||
final List<Item> list = new CopyOnWriteArrayList<>();
|
||||
|
||||
if (Config.THREADS_FOR_LOADING)
|
||||
{
|
||||
final List<ScheduledFuture<?>> jobs = new CopyOnWriteArrayList<>();
|
||||
for (File file : _itemFiles)
|
||||
{
|
||||
@ -89,6 +92,17 @@ public class DocumentEngine
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
for (File file : _itemFiles)
|
||||
{
|
||||
final DocumentItem document = new DocumentItem(file);
|
||||
document.parse();
|
||||
list.addAll(document.getItemList());
|
||||
}
|
||||
}
|
||||
|
||||
return list;
|
||||
}
|
||||
|
||||
|
@ -145,6 +145,10 @@ ThreadsPerInstantThreadPool = 2
|
||||
# Default: 2
|
||||
UrgentPacketThreadCoreSize = 2
|
||||
|
||||
# Use threads to decrease startup time.
|
||||
# Default: False
|
||||
ThreadsForLoading = False
|
||||
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# Dead Lock Detector (separate thread for detecting deadlocks)
|
||||
|
@ -425,6 +425,7 @@ public final class Config
|
||||
public static int INSTANT_THREAD_POOL_COUNT;
|
||||
public static int THREADS_PER_INSTANT_THREAD_POOL;
|
||||
public static int IO_PACKET_THREAD_CORE_SIZE;
|
||||
public static boolean THREADS_FOR_LOADING;
|
||||
public static boolean DEADLOCK_DETECTOR;
|
||||
public static int DEADLOCK_CHECK_INTERVAL;
|
||||
public static boolean RESTART_ON_DEADLOCK;
|
||||
@ -1287,6 +1288,7 @@ public final class Config
|
||||
}
|
||||
THREADS_PER_INSTANT_THREAD_POOL = serverSettings.getInt("ThreadsPerInstantThreadPool", 2);
|
||||
IO_PACKET_THREAD_CORE_SIZE = serverSettings.getInt("UrgentPacketThreadCoreSize", 2);
|
||||
THREADS_FOR_LOADING = serverSettings.getBoolean("ThreadsForLoading", false);
|
||||
|
||||
DEADLOCK_DETECTOR = serverSettings.getBoolean("DeadLockDetector", true);
|
||||
DEADLOCK_CHECK_INTERVAL = serverSettings.getInt("DeadLockCheckInterval", 20);
|
||||
|
@ -165,19 +165,21 @@ public interface IXmlReader
|
||||
return false;
|
||||
}
|
||||
|
||||
if (Config.THREADS_FOR_LOADING)
|
||||
{
|
||||
final List<ScheduledFuture<?>> jobs = new CopyOnWriteArrayList<>();
|
||||
final File[] listOfFiles = dir.listFiles();
|
||||
for (File f : listOfFiles)
|
||||
for (File file : listOfFiles)
|
||||
{
|
||||
if (recursive && f.isDirectory())
|
||||
if (recursive && file.isDirectory())
|
||||
{
|
||||
parseDirectory(f, recursive);
|
||||
parseDirectory(file, recursive);
|
||||
}
|
||||
else if (getCurrentFileFilter().accept(f))
|
||||
else if (getCurrentFileFilter().accept(file))
|
||||
{
|
||||
jobs.add(ThreadPool.schedule(() ->
|
||||
{
|
||||
parseFile(f);
|
||||
parseFile(file);
|
||||
}, 0));
|
||||
}
|
||||
}
|
||||
@ -191,6 +193,22 @@ public interface IXmlReader
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
final File[] listOfFiles = dir.listFiles();
|
||||
for (File file : listOfFiles)
|
||||
{
|
||||
if (recursive && file.isDirectory())
|
||||
{
|
||||
parseDirectory(file, recursive);
|
||||
}
|
||||
else if (getCurrentFileFilter().accept(file))
|
||||
{
|
||||
parseFile(file);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
@ -95,6 +95,9 @@ public class SpawnsData implements IXmlReader
|
||||
}
|
||||
|
||||
LOGGER.info(getClass().getSimpleName() + ": Initializing spawns...");
|
||||
|
||||
if (Config.THREADS_FOR_LOADING)
|
||||
{
|
||||
final List<ScheduledFuture<?>> jobs = new CopyOnWriteArrayList<>();
|
||||
for (SpawnTemplate template : _spawns)
|
||||
{
|
||||
@ -117,6 +120,19 @@ public class SpawnsData implements IXmlReader
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
for (SpawnTemplate template : _spawns)
|
||||
{
|
||||
if (template.isSpawningByDefault())
|
||||
{
|
||||
template.spawnAll(null);
|
||||
template.notifyActivate();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
LOGGER.info(getClass().getSimpleName() + ": All spawns has been initialized!");
|
||||
}
|
||||
|
||||
|
@ -69,6 +69,9 @@ public class DocumentEngine
|
||||
public List<Item> loadItems()
|
||||
{
|
||||
final List<Item> list = new CopyOnWriteArrayList<>();
|
||||
|
||||
if (Config.THREADS_FOR_LOADING)
|
||||
{
|
||||
final List<ScheduledFuture<?>> jobs = new CopyOnWriteArrayList<>();
|
||||
for (File file : _itemFiles)
|
||||
{
|
||||
@ -89,6 +92,17 @@ public class DocumentEngine
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
for (File file : _itemFiles)
|
||||
{
|
||||
final DocumentItem document = new DocumentItem(file);
|
||||
document.parse();
|
||||
list.addAll(document.getItemList());
|
||||
}
|
||||
}
|
||||
|
||||
return list;
|
||||
}
|
||||
|
||||
|
@ -145,6 +145,10 @@ ThreadsPerInstantThreadPool = 2
|
||||
# Default: 2
|
||||
UrgentPacketThreadCoreSize = 2
|
||||
|
||||
# Use threads to decrease startup time.
|
||||
# Default: False
|
||||
ThreadsForLoading = False
|
||||
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# Dead Lock Detector (separate thread for detecting deadlocks)
|
||||
|
@ -426,6 +426,7 @@ public final class Config
|
||||
public static int INSTANT_THREAD_POOL_COUNT;
|
||||
public static int THREADS_PER_INSTANT_THREAD_POOL;
|
||||
public static int IO_PACKET_THREAD_CORE_SIZE;
|
||||
public static boolean THREADS_FOR_LOADING;
|
||||
public static boolean DEADLOCK_DETECTOR;
|
||||
public static int DEADLOCK_CHECK_INTERVAL;
|
||||
public static boolean RESTART_ON_DEADLOCK;
|
||||
@ -1294,6 +1295,7 @@ public final class Config
|
||||
}
|
||||
THREADS_PER_INSTANT_THREAD_POOL = serverSettings.getInt("ThreadsPerInstantThreadPool", 2);
|
||||
IO_PACKET_THREAD_CORE_SIZE = serverSettings.getInt("UrgentPacketThreadCoreSize", 2);
|
||||
THREADS_FOR_LOADING = serverSettings.getBoolean("ThreadsForLoading", false);
|
||||
|
||||
DEADLOCK_DETECTOR = serverSettings.getBoolean("DeadLockDetector", true);
|
||||
DEADLOCK_CHECK_INTERVAL = serverSettings.getInt("DeadLockCheckInterval", 20);
|
||||
|
@ -165,19 +165,21 @@ public interface IXmlReader
|
||||
return false;
|
||||
}
|
||||
|
||||
if (Config.THREADS_FOR_LOADING)
|
||||
{
|
||||
final List<ScheduledFuture<?>> jobs = new CopyOnWriteArrayList<>();
|
||||
final File[] listOfFiles = dir.listFiles();
|
||||
for (File f : listOfFiles)
|
||||
for (File file : listOfFiles)
|
||||
{
|
||||
if (recursive && f.isDirectory())
|
||||
if (recursive && file.isDirectory())
|
||||
{
|
||||
parseDirectory(f, recursive);
|
||||
parseDirectory(file, recursive);
|
||||
}
|
||||
else if (getCurrentFileFilter().accept(f))
|
||||
else if (getCurrentFileFilter().accept(file))
|
||||
{
|
||||
jobs.add(ThreadPool.schedule(() ->
|
||||
{
|
||||
parseFile(f);
|
||||
parseFile(file);
|
||||
}, 0));
|
||||
}
|
||||
}
|
||||
@ -191,6 +193,22 @@ public interface IXmlReader
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
final File[] listOfFiles = dir.listFiles();
|
||||
for (File file : listOfFiles)
|
||||
{
|
||||
if (recursive && file.isDirectory())
|
||||
{
|
||||
parseDirectory(file, recursive);
|
||||
}
|
||||
else if (getCurrentFileFilter().accept(file))
|
||||
{
|
||||
parseFile(file);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
@ -95,6 +95,9 @@ public class SpawnsData implements IXmlReader
|
||||
}
|
||||
|
||||
LOGGER.info(getClass().getSimpleName() + ": Initializing spawns...");
|
||||
|
||||
if (Config.THREADS_FOR_LOADING)
|
||||
{
|
||||
final List<ScheduledFuture<?>> jobs = new CopyOnWriteArrayList<>();
|
||||
for (SpawnTemplate template : _spawns)
|
||||
{
|
||||
@ -117,6 +120,19 @@ public class SpawnsData implements IXmlReader
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
for (SpawnTemplate template : _spawns)
|
||||
{
|
||||
if (template.isSpawningByDefault())
|
||||
{
|
||||
template.spawnAll(null);
|
||||
template.notifyActivate();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
LOGGER.info(getClass().getSimpleName() + ": All spawns has been initialized!");
|
||||
}
|
||||
|
||||
|
@ -69,6 +69,9 @@ public class DocumentEngine
|
||||
public List<Item> loadItems()
|
||||
{
|
||||
final List<Item> list = new CopyOnWriteArrayList<>();
|
||||
|
||||
if (Config.THREADS_FOR_LOADING)
|
||||
{
|
||||
final List<ScheduledFuture<?>> jobs = new CopyOnWriteArrayList<>();
|
||||
for (File file : _itemFiles)
|
||||
{
|
||||
@ -89,6 +92,17 @@ public class DocumentEngine
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
for (File file : _itemFiles)
|
||||
{
|
||||
final DocumentItem document = new DocumentItem(file);
|
||||
document.parse();
|
||||
list.addAll(document.getItemList());
|
||||
}
|
||||
}
|
||||
|
||||
return list;
|
||||
}
|
||||
|
||||
|
@ -145,6 +145,10 @@ ThreadsPerInstantThreadPool = 2
|
||||
# Default: 2
|
||||
UrgentPacketThreadCoreSize = 2
|
||||
|
||||
# Use threads to decrease startup time.
|
||||
# Default: False
|
||||
ThreadsForLoading = False
|
||||
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# Dead Lock Detector (separate thread for detecting deadlocks)
|
||||
|
@ -503,6 +503,7 @@ public final class Config
|
||||
public static int INSTANT_THREAD_POOL_COUNT;
|
||||
public static int THREADS_PER_INSTANT_THREAD_POOL;
|
||||
public static int IO_PACKET_THREAD_CORE_SIZE;
|
||||
public static boolean THREADS_FOR_LOADING;
|
||||
public static boolean DEADLOCK_DETECTOR;
|
||||
public static int DEADLOCK_CHECK_INTERVAL;
|
||||
public static boolean RESTART_ON_DEADLOCK;
|
||||
@ -1453,6 +1454,7 @@ public final class Config
|
||||
}
|
||||
THREADS_PER_INSTANT_THREAD_POOL = serverSettings.getInt("ThreadsPerInstantThreadPool", 2);
|
||||
IO_PACKET_THREAD_CORE_SIZE = serverSettings.getInt("UrgentPacketThreadCoreSize", 2);
|
||||
THREADS_FOR_LOADING = serverSettings.getBoolean("ThreadsForLoading", false);
|
||||
|
||||
DEADLOCK_DETECTOR = serverSettings.getBoolean("DeadLockDetector", true);
|
||||
DEADLOCK_CHECK_INTERVAL = serverSettings.getInt("DeadLockCheckInterval", 20);
|
||||
|
@ -165,19 +165,21 @@ public interface IXmlReader
|
||||
return false;
|
||||
}
|
||||
|
||||
if (Config.THREADS_FOR_LOADING)
|
||||
{
|
||||
final List<ScheduledFuture<?>> jobs = new CopyOnWriteArrayList<>();
|
||||
final File[] listOfFiles = dir.listFiles();
|
||||
for (File f : listOfFiles)
|
||||
for (File file : listOfFiles)
|
||||
{
|
||||
if (recursive && f.isDirectory())
|
||||
if (recursive && file.isDirectory())
|
||||
{
|
||||
parseDirectory(f, recursive);
|
||||
parseDirectory(file, recursive);
|
||||
}
|
||||
else if (getCurrentFileFilter().accept(f))
|
||||
else if (getCurrentFileFilter().accept(file))
|
||||
{
|
||||
jobs.add(ThreadPool.schedule(() ->
|
||||
{
|
||||
parseFile(f);
|
||||
parseFile(file);
|
||||
}, 0));
|
||||
}
|
||||
}
|
||||
@ -191,6 +193,22 @@ public interface IXmlReader
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
final File[] listOfFiles = dir.listFiles();
|
||||
for (File file : listOfFiles)
|
||||
{
|
||||
if (recursive && file.isDirectory())
|
||||
{
|
||||
parseDirectory(file, recursive);
|
||||
}
|
||||
else if (getCurrentFileFilter().accept(file))
|
||||
{
|
||||
parseFile(file);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
@ -86,6 +86,8 @@ public class DocumentEngine
|
||||
}
|
||||
|
||||
public void loadAllSkills(Map<Integer, Skill> allSkills)
|
||||
{
|
||||
if (Config.THREADS_FOR_LOADING)
|
||||
{
|
||||
final List<ScheduledFuture<?>> jobs = new CopyOnWriteArrayList<>();
|
||||
for (File file : _skillFiles)
|
||||
@ -114,6 +116,24 @@ public class DocumentEngine
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
for (File file : _skillFiles)
|
||||
{
|
||||
final List<Skill> skills = loadSkills(file);
|
||||
if (skills == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
for (Skill skill : skills)
|
||||
{
|
||||
allSkills.put(SkillData.getSkillHashCode(skill), skill);
|
||||
count++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
LOGGER.info(getClass().getSimpleName() + ": Loaded " + count + " Skill templates from XML files.");
|
||||
}
|
||||
|
||||
@ -123,8 +143,11 @@ public class DocumentEngine
|
||||
*/
|
||||
public List<Item> loadItems()
|
||||
{
|
||||
final List<ScheduledFuture<?>> jobs = new CopyOnWriteArrayList<>();
|
||||
final List<Item> list = new CopyOnWriteArrayList<>();
|
||||
|
||||
if (Config.THREADS_FOR_LOADING)
|
||||
{
|
||||
final List<ScheduledFuture<?>> jobs = new CopyOnWriteArrayList<>();
|
||||
for (File file : _itemFiles)
|
||||
{
|
||||
jobs.add(ThreadPool.schedule(() ->
|
||||
@ -144,6 +167,17 @@ public class DocumentEngine
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
for (File file : _itemFiles)
|
||||
{
|
||||
final DocumentItem document = new DocumentItem(file);
|
||||
document.parse();
|
||||
list.addAll(document.getItemList());
|
||||
}
|
||||
}
|
||||
|
||||
return list;
|
||||
}
|
||||
|
||||
|
@ -145,6 +145,10 @@ ThreadsPerInstantThreadPool = 2
|
||||
# Default: 2
|
||||
UrgentPacketThreadCoreSize = 2
|
||||
|
||||
# Use threads to decrease startup time.
|
||||
# Default: False
|
||||
ThreadsForLoading = False
|
||||
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# Dead Lock Detector (separate thread for detecting deadlocks)
|
||||
|
@ -436,6 +436,7 @@ public final class Config
|
||||
public static int INSTANT_THREAD_POOL_COUNT;
|
||||
public static int THREADS_PER_INSTANT_THREAD_POOL;
|
||||
public static int IO_PACKET_THREAD_CORE_SIZE;
|
||||
public static boolean THREADS_FOR_LOADING;
|
||||
public static boolean DEADLOCK_DETECTOR;
|
||||
public static int DEADLOCK_CHECK_INTERVAL;
|
||||
public static boolean RESTART_ON_DEADLOCK;
|
||||
@ -1231,6 +1232,7 @@ public final class Config
|
||||
}
|
||||
THREADS_PER_INSTANT_THREAD_POOL = serverSettings.getInt("ThreadsPerInstantThreadPool", 2);
|
||||
IO_PACKET_THREAD_CORE_SIZE = serverSettings.getInt("UrgentPacketThreadCoreSize", 2);
|
||||
THREADS_FOR_LOADING = serverSettings.getBoolean("ThreadsForLoading", false);
|
||||
|
||||
DEADLOCK_DETECTOR = serverSettings.getBoolean("DeadLockDetector", true);
|
||||
DEADLOCK_CHECK_INTERVAL = serverSettings.getInt("DeadLockCheckInterval", 20);
|
||||
|
@ -165,19 +165,21 @@ public interface IXmlReader
|
||||
return false;
|
||||
}
|
||||
|
||||
if (Config.THREADS_FOR_LOADING)
|
||||
{
|
||||
final List<ScheduledFuture<?>> jobs = new CopyOnWriteArrayList<>();
|
||||
final File[] listOfFiles = dir.listFiles();
|
||||
for (File f : listOfFiles)
|
||||
for (File file : listOfFiles)
|
||||
{
|
||||
if (recursive && f.isDirectory())
|
||||
if (recursive && file.isDirectory())
|
||||
{
|
||||
parseDirectory(f, recursive);
|
||||
parseDirectory(file, recursive);
|
||||
}
|
||||
else if (getCurrentFileFilter().accept(f))
|
||||
else if (getCurrentFileFilter().accept(file))
|
||||
{
|
||||
jobs.add(ThreadPool.schedule(() ->
|
||||
{
|
||||
parseFile(f);
|
||||
parseFile(file);
|
||||
}, 0));
|
||||
}
|
||||
}
|
||||
@ -191,6 +193,22 @@ public interface IXmlReader
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
final File[] listOfFiles = dir.listFiles();
|
||||
for (File file : listOfFiles)
|
||||
{
|
||||
if (recursive && file.isDirectory())
|
||||
{
|
||||
parseDirectory(file, recursive);
|
||||
}
|
||||
else if (getCurrentFileFilter().accept(file))
|
||||
{
|
||||
parseFile(file);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
@ -95,6 +95,9 @@ public class SpawnsData implements IXmlReader
|
||||
}
|
||||
|
||||
LOGGER.info(getClass().getSimpleName() + ": Initializing spawns...");
|
||||
|
||||
if (Config.THREADS_FOR_LOADING)
|
||||
{
|
||||
final List<ScheduledFuture<?>> jobs = new CopyOnWriteArrayList<>();
|
||||
for (SpawnTemplate template : _spawns)
|
||||
{
|
||||
@ -117,6 +120,19 @@ public class SpawnsData implements IXmlReader
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
for (SpawnTemplate template : _spawns)
|
||||
{
|
||||
if (template.isSpawningByDefault())
|
||||
{
|
||||
template.spawnAll(null);
|
||||
template.notifyActivate();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
LOGGER.info(getClass().getSimpleName() + ": All spawns has been initialized!");
|
||||
}
|
||||
|
||||
|
@ -69,6 +69,9 @@ public class DocumentEngine
|
||||
public List<Item> loadItems()
|
||||
{
|
||||
final List<Item> list = new CopyOnWriteArrayList<>();
|
||||
|
||||
if (Config.THREADS_FOR_LOADING)
|
||||
{
|
||||
final List<ScheduledFuture<?>> jobs = new CopyOnWriteArrayList<>();
|
||||
for (File file : _itemFiles)
|
||||
{
|
||||
@ -89,6 +92,17 @@ public class DocumentEngine
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
for (File file : _itemFiles)
|
||||
{
|
||||
final DocumentItem document = new DocumentItem(file);
|
||||
document.parse();
|
||||
list.addAll(document.getItemList());
|
||||
}
|
||||
}
|
||||
|
||||
return list;
|
||||
}
|
||||
|
||||
|
@ -145,6 +145,10 @@ ThreadsPerInstantThreadPool = 2
|
||||
# Default: 2
|
||||
UrgentPacketThreadCoreSize = 2
|
||||
|
||||
# Use threads to decrease startup time.
|
||||
# Default: False
|
||||
ThreadsForLoading = False
|
||||
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# Dead Lock Detector (separate thread for detecting deadlocks)
|
||||
|
@ -436,6 +436,7 @@ public final class Config
|
||||
public static int INSTANT_THREAD_POOL_COUNT;
|
||||
public static int THREADS_PER_INSTANT_THREAD_POOL;
|
||||
public static int IO_PACKET_THREAD_CORE_SIZE;
|
||||
public static boolean THREADS_FOR_LOADING;
|
||||
public static boolean DEADLOCK_DETECTOR;
|
||||
public static int DEADLOCK_CHECK_INTERVAL;
|
||||
public static boolean RESTART_ON_DEADLOCK;
|
||||
@ -1235,6 +1236,7 @@ public final class Config
|
||||
}
|
||||
THREADS_PER_INSTANT_THREAD_POOL = serverSettings.getInt("ThreadsPerInstantThreadPool", 2);
|
||||
IO_PACKET_THREAD_CORE_SIZE = serverSettings.getInt("UrgentPacketThreadCoreSize", 2);
|
||||
THREADS_FOR_LOADING = serverSettings.getBoolean("ThreadsForLoading", false);
|
||||
|
||||
DEADLOCK_DETECTOR = serverSettings.getBoolean("DeadLockDetector", true);
|
||||
DEADLOCK_CHECK_INTERVAL = serverSettings.getInt("DeadLockCheckInterval", 20);
|
||||
|
@ -165,19 +165,21 @@ public interface IXmlReader
|
||||
return false;
|
||||
}
|
||||
|
||||
if (Config.THREADS_FOR_LOADING)
|
||||
{
|
||||
final List<ScheduledFuture<?>> jobs = new CopyOnWriteArrayList<>();
|
||||
final File[] listOfFiles = dir.listFiles();
|
||||
for (File f : listOfFiles)
|
||||
for (File file : listOfFiles)
|
||||
{
|
||||
if (recursive && f.isDirectory())
|
||||
if (recursive && file.isDirectory())
|
||||
{
|
||||
parseDirectory(f, recursive);
|
||||
parseDirectory(file, recursive);
|
||||
}
|
||||
else if (getCurrentFileFilter().accept(f))
|
||||
else if (getCurrentFileFilter().accept(file))
|
||||
{
|
||||
jobs.add(ThreadPool.schedule(() ->
|
||||
{
|
||||
parseFile(f);
|
||||
parseFile(file);
|
||||
}, 0));
|
||||
}
|
||||
}
|
||||
@ -191,6 +193,22 @@ public interface IXmlReader
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
final File[] listOfFiles = dir.listFiles();
|
||||
for (File file : listOfFiles)
|
||||
{
|
||||
if (recursive && file.isDirectory())
|
||||
{
|
||||
parseDirectory(file, recursive);
|
||||
}
|
||||
else if (getCurrentFileFilter().accept(file))
|
||||
{
|
||||
parseFile(file);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
@ -95,6 +95,9 @@ public class SpawnsData implements IXmlReader
|
||||
}
|
||||
|
||||
LOGGER.info(getClass().getSimpleName() + ": Initializing spawns...");
|
||||
|
||||
if (Config.THREADS_FOR_LOADING)
|
||||
{
|
||||
final List<ScheduledFuture<?>> jobs = new CopyOnWriteArrayList<>();
|
||||
for (SpawnTemplate template : _spawns)
|
||||
{
|
||||
@ -117,6 +120,19 @@ public class SpawnsData implements IXmlReader
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
for (SpawnTemplate template : _spawns)
|
||||
{
|
||||
if (template.isSpawningByDefault())
|
||||
{
|
||||
template.spawnAll(null);
|
||||
template.notifyActivate();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
LOGGER.info(getClass().getSimpleName() + ": All spawns has been initialized!");
|
||||
}
|
||||
|
||||
|
@ -69,6 +69,9 @@ public class DocumentEngine
|
||||
public List<Item> loadItems()
|
||||
{
|
||||
final List<Item> list = new CopyOnWriteArrayList<>();
|
||||
|
||||
if (Config.THREADS_FOR_LOADING)
|
||||
{
|
||||
final List<ScheduledFuture<?>> jobs = new CopyOnWriteArrayList<>();
|
||||
for (File file : _itemFiles)
|
||||
{
|
||||
@ -89,6 +92,17 @@ public class DocumentEngine
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
for (File file : _itemFiles)
|
||||
{
|
||||
final DocumentItem document = new DocumentItem(file);
|
||||
document.parse();
|
||||
list.addAll(document.getItemList());
|
||||
}
|
||||
}
|
||||
|
||||
return list;
|
||||
}
|
||||
|
||||
|
@ -145,6 +145,10 @@ ThreadsPerInstantThreadPool = 2
|
||||
# Default: 2
|
||||
UrgentPacketThreadCoreSize = 2
|
||||
|
||||
# Use threads to decrease startup time.
|
||||
# Default: False
|
||||
ThreadsForLoading = False
|
||||
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# Dead Lock Detector (separate thread for detecting deadlocks)
|
||||
|
@ -436,6 +436,7 @@ public final class Config
|
||||
public static int INSTANT_THREAD_POOL_COUNT;
|
||||
public static int THREADS_PER_INSTANT_THREAD_POOL;
|
||||
public static int IO_PACKET_THREAD_CORE_SIZE;
|
||||
public static boolean THREADS_FOR_LOADING;
|
||||
public static boolean DEADLOCK_DETECTOR;
|
||||
public static int DEADLOCK_CHECK_INTERVAL;
|
||||
public static boolean RESTART_ON_DEADLOCK;
|
||||
@ -1235,6 +1236,7 @@ public final class Config
|
||||
}
|
||||
THREADS_PER_INSTANT_THREAD_POOL = serverSettings.getInt("ThreadsPerInstantThreadPool", 2);
|
||||
IO_PACKET_THREAD_CORE_SIZE = serverSettings.getInt("UrgentPacketThreadCoreSize", 2);
|
||||
THREADS_FOR_LOADING = serverSettings.getBoolean("ThreadsForLoading", false);
|
||||
|
||||
DEADLOCK_DETECTOR = serverSettings.getBoolean("DeadLockDetector", true);
|
||||
DEADLOCK_CHECK_INTERVAL = serverSettings.getInt("DeadLockCheckInterval", 20);
|
||||
|
@ -165,19 +165,21 @@ public interface IXmlReader
|
||||
return false;
|
||||
}
|
||||
|
||||
if (Config.THREADS_FOR_LOADING)
|
||||
{
|
||||
final List<ScheduledFuture<?>> jobs = new CopyOnWriteArrayList<>();
|
||||
final File[] listOfFiles = dir.listFiles();
|
||||
for (File f : listOfFiles)
|
||||
for (File file : listOfFiles)
|
||||
{
|
||||
if (recursive && f.isDirectory())
|
||||
if (recursive && file.isDirectory())
|
||||
{
|
||||
parseDirectory(f, recursive);
|
||||
parseDirectory(file, recursive);
|
||||
}
|
||||
else if (getCurrentFileFilter().accept(f))
|
||||
else if (getCurrentFileFilter().accept(file))
|
||||
{
|
||||
jobs.add(ThreadPool.schedule(() ->
|
||||
{
|
||||
parseFile(f);
|
||||
parseFile(file);
|
||||
}, 0));
|
||||
}
|
||||
}
|
||||
@ -191,6 +193,22 @@ public interface IXmlReader
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
final File[] listOfFiles = dir.listFiles();
|
||||
for (File file : listOfFiles)
|
||||
{
|
||||
if (recursive && file.isDirectory())
|
||||
{
|
||||
parseDirectory(file, recursive);
|
||||
}
|
||||
else if (getCurrentFileFilter().accept(file))
|
||||
{
|
||||
parseFile(file);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
@ -95,6 +95,9 @@ public class SpawnsData implements IXmlReader
|
||||
}
|
||||
|
||||
LOGGER.info(getClass().getSimpleName() + ": Initializing spawns...");
|
||||
|
||||
if (Config.THREADS_FOR_LOADING)
|
||||
{
|
||||
final List<ScheduledFuture<?>> jobs = new CopyOnWriteArrayList<>();
|
||||
for (SpawnTemplate template : _spawns)
|
||||
{
|
||||
@ -117,6 +120,19 @@ public class SpawnsData implements IXmlReader
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
for (SpawnTemplate template : _spawns)
|
||||
{
|
||||
if (template.isSpawningByDefault())
|
||||
{
|
||||
template.spawnAll(null);
|
||||
template.notifyActivate();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
LOGGER.info(getClass().getSimpleName() + ": All spawns has been initialized!");
|
||||
}
|
||||
|
||||
|
@ -69,6 +69,9 @@ public class DocumentEngine
|
||||
public List<Item> loadItems()
|
||||
{
|
||||
final List<Item> list = new CopyOnWriteArrayList<>();
|
||||
|
||||
if (Config.THREADS_FOR_LOADING)
|
||||
{
|
||||
final List<ScheduledFuture<?>> jobs = new CopyOnWriteArrayList<>();
|
||||
for (File file : _itemFiles)
|
||||
{
|
||||
@ -89,6 +92,17 @@ public class DocumentEngine
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
for (File file : _itemFiles)
|
||||
{
|
||||
final DocumentItem document = new DocumentItem(file);
|
||||
document.parse();
|
||||
list.addAll(document.getItemList());
|
||||
}
|
||||
}
|
||||
|
||||
return list;
|
||||
}
|
||||
|
||||
|
@ -145,6 +145,10 @@ ThreadsPerInstantThreadPool = 2
|
||||
# Default: 2
|
||||
UrgentPacketThreadCoreSize = 2
|
||||
|
||||
# Use threads to decrease startup time.
|
||||
# Default: False
|
||||
ThreadsForLoading = False
|
||||
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# Dead Lock Detector (separate thread for detecting deadlocks)
|
||||
|
@ -436,6 +436,7 @@ public final class Config
|
||||
public static int INSTANT_THREAD_POOL_COUNT;
|
||||
public static int THREADS_PER_INSTANT_THREAD_POOL;
|
||||
public static int IO_PACKET_THREAD_CORE_SIZE;
|
||||
public static boolean THREADS_FOR_LOADING;
|
||||
public static boolean DEADLOCK_DETECTOR;
|
||||
public static int DEADLOCK_CHECK_INTERVAL;
|
||||
public static boolean RESTART_ON_DEADLOCK;
|
||||
@ -1235,6 +1236,7 @@ public final class Config
|
||||
}
|
||||
THREADS_PER_INSTANT_THREAD_POOL = serverSettings.getInt("ThreadsPerInstantThreadPool", 2);
|
||||
IO_PACKET_THREAD_CORE_SIZE = serverSettings.getInt("UrgentPacketThreadCoreSize", 2);
|
||||
THREADS_FOR_LOADING = serverSettings.getBoolean("ThreadsForLoading", false);
|
||||
|
||||
DEADLOCK_DETECTOR = serverSettings.getBoolean("DeadLockDetector", true);
|
||||
DEADLOCK_CHECK_INTERVAL = serverSettings.getInt("DeadLockCheckInterval", 20);
|
||||
|
@ -165,19 +165,21 @@ public interface IXmlReader
|
||||
return false;
|
||||
}
|
||||
|
||||
if (Config.THREADS_FOR_LOADING)
|
||||
{
|
||||
final List<ScheduledFuture<?>> jobs = new CopyOnWriteArrayList<>();
|
||||
final File[] listOfFiles = dir.listFiles();
|
||||
for (File f : listOfFiles)
|
||||
for (File file : listOfFiles)
|
||||
{
|
||||
if (recursive && f.isDirectory())
|
||||
if (recursive && file.isDirectory())
|
||||
{
|
||||
parseDirectory(f, recursive);
|
||||
parseDirectory(file, recursive);
|
||||
}
|
||||
else if (getCurrentFileFilter().accept(f))
|
||||
else if (getCurrentFileFilter().accept(file))
|
||||
{
|
||||
jobs.add(ThreadPool.schedule(() ->
|
||||
{
|
||||
parseFile(f);
|
||||
parseFile(file);
|
||||
}, 0));
|
||||
}
|
||||
}
|
||||
@ -191,6 +193,22 @@ public interface IXmlReader
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
final File[] listOfFiles = dir.listFiles();
|
||||
for (File file : listOfFiles)
|
||||
{
|
||||
if (recursive && file.isDirectory())
|
||||
{
|
||||
parseDirectory(file, recursive);
|
||||
}
|
||||
else if (getCurrentFileFilter().accept(file))
|
||||
{
|
||||
parseFile(file);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
@ -95,6 +95,9 @@ public class SpawnsData implements IXmlReader
|
||||
}
|
||||
|
||||
LOGGER.info(getClass().getSimpleName() + ": Initializing spawns...");
|
||||
|
||||
if (Config.THREADS_FOR_LOADING)
|
||||
{
|
||||
final List<ScheduledFuture<?>> jobs = new CopyOnWriteArrayList<>();
|
||||
for (SpawnTemplate template : _spawns)
|
||||
{
|
||||
@ -117,6 +120,19 @@ public class SpawnsData implements IXmlReader
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
for (SpawnTemplate template : _spawns)
|
||||
{
|
||||
if (template.isSpawningByDefault())
|
||||
{
|
||||
template.spawnAll(null);
|
||||
template.notifyActivate();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
LOGGER.info(getClass().getSimpleName() + ": All spawns has been initialized!");
|
||||
}
|
||||
|
||||
|
@ -69,6 +69,9 @@ public class DocumentEngine
|
||||
public List<Item> loadItems()
|
||||
{
|
||||
final List<Item> list = new CopyOnWriteArrayList<>();
|
||||
|
||||
if (Config.THREADS_FOR_LOADING)
|
||||
{
|
||||
final List<ScheduledFuture<?>> jobs = new CopyOnWriteArrayList<>();
|
||||
for (File file : _itemFiles)
|
||||
{
|
||||
@ -89,6 +92,17 @@ public class DocumentEngine
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
for (File file : _itemFiles)
|
||||
{
|
||||
final DocumentItem document = new DocumentItem(file);
|
||||
document.parse();
|
||||
list.addAll(document.getItemList());
|
||||
}
|
||||
}
|
||||
|
||||
return list;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user