Browse Source

BETA: option - Login Server Restart every 24(configurable) hours.

Denser 14 years ago
parent
commit
c810b24395

+ 5 - 0
L2J_Server_BETA/java/com/l2jserver/Config.java

@@ -880,6 +880,8 @@ public final class Config
 	public static boolean RESERVE_HOST_ON_LOGIN = false;
 	public static TIntArrayList PROTOCOL_LIST;
 	public static boolean LOG_LOGIN_CONTROLLER;
+	public static boolean LOGIN_SERVER_SCHEDULE_RESTART; 
+	public static long LOGIN_SERVER_SCHEDULE_RESTART_TIME;
 	
 	//--------------------------------------------------
 	// CommunityServer Settings
@@ -2796,6 +2798,9 @@ public final class Config
 					
 					LOG_LOGIN_CONTROLLER = Boolean.parseBoolean(serverSettings.getProperty("LogLoginController", "true"));
 					
+					LOGIN_SERVER_SCHEDULE_RESTART = Boolean.parseBoolean(serverSettings.getProperty("LoginRestartSchedule", "False")); 
+					LOGIN_SERVER_SCHEDULE_RESTART_TIME = Long.parseLong(serverSettings.getProperty("LoginRestartTime", "24")); 
+					
 					DATABASE_DRIVER = serverSettings.getProperty("Driver", "com.mysql.jdbc.Driver");
 					DATABASE_URL = serverSettings.getProperty("URL", "jdbc:mysql://localhost/l2jdb");
 					DATABASE_LOGIN = serverSettings.getProperty("Login", "root");

+ 34 - 0
L2J_Server_BETA/java/com/l2jserver/loginserver/L2LoginServer.java

@@ -50,6 +50,7 @@ public class L2LoginServer
 	private GameServerListener _gameServerListener;
 	private SelectorThread<L2LoginClient> _selectorThread;
 	private Status _statusServer;
+	private Thread _restartLoginServer;
 	
 	public static void main(String[] args)
 	{
@@ -317,6 +318,39 @@ public class L2LoginServer
 		{
 			_log.warning("IP Bans file (" + bannedFile.getName() + ") is missing or is a directory, skipped.");
 		}
+		
+		if (Config.LOGIN_SERVER_SCHEDULE_RESTART)
+		{
+			_log.info("Scheduled LS restart after " + Config.LOGIN_SERVER_SCHEDULE_RESTART_TIME + " hours");
+			_restartLoginServer = new LoginServerRestart();
+			_restartLoginServer.setDaemon(true);
+			_restartLoginServer.start();
+		}
+	}
+	
+	class LoginServerRestart extends Thread
+	{
+		public LoginServerRestart()
+		{
+			setName("LoginServerRestart");
+		}
+		
+		@Override
+		public void run()
+		{
+			while (!isInterrupted())
+			{
+				try
+				{
+					Thread.sleep(Config.LOGIN_SERVER_SCHEDULE_RESTART_TIME * 60 * 60 * 1000);
+				}
+				catch (InterruptedException e)
+				{
+					return;
+				}
+				shutdown(true);
+			}
+		}
 	}
 	
 	public void shutdown(boolean restart)

+ 7 - 0
L2J_Server_BETA/java/config/loginserver.properties

@@ -108,3 +108,10 @@ AutoCreateAccounts = True
 # ---------------------------------------------------------------------------
 # Default: False
 Debug = False
+
+# ---------------------------------------------------------------------------
+# Restart LS every 24 hours?
+# ---------------------------------------------------------------------------
+# Default: False, 24
+LoginRestartSchedule = False
+LoginRestartTime = 24