mirror of
https://github.com/magefree/mage.git
synced 2025-12-20 02:30:08 -08:00
server: fixed that new users can't connect to long living server (if it works too long without restarts, #11285);
This commit is contained in:
parent
46523f2035
commit
7285f13da2
1 changed files with 11 additions and 0 deletions
|
|
@ -55,6 +55,16 @@ public final class Main {
|
||||||
private static final Logger logger = Logger.getLogger(Main.class);
|
private static final Logger logger = Logger.getLogger(Main.class);
|
||||||
private static final MageVersion version = new MageVersion(Main.class);
|
private static final MageVersion version = new MageVersion(Main.class);
|
||||||
|
|
||||||
|
// Server threads:
|
||||||
|
// - worker threads: creates for each connection, controls by maxPoolSize;
|
||||||
|
// - acceptor threads: processing requests to start a new connection, controls by numAcceptThreads;
|
||||||
|
// - backlog threads: processing waiting queue if maxPoolSize reached, controls by backlogSize;
|
||||||
|
// Usage hints:
|
||||||
|
// - if maxPoolSize reached then new clients will freeze in connection dialog until backlog queue overflow;
|
||||||
|
// - so for active server must increase maxPoolSize to big value like "max online * 10" or enable worker idle timeout
|
||||||
|
// - worker idle time will free unused worker thread, so new client can connect;
|
||||||
|
private static final int SERVER_WORKER_THREAD_IDLE_TIMEOUT_SECS = 5 * 60; // no needs to config, must be enabled for all
|
||||||
|
|
||||||
// arg settings can be setup by run script or IDE's program arguments like -xxx=yyy
|
// arg settings can be setup by run script or IDE's program arguments like -xxx=yyy
|
||||||
// prop settings can be setup by -Dxxx=yyy in the launcher
|
// prop settings can be setup by -Dxxx=yyy in the launcher
|
||||||
// priority: default setting -> prop setting -> arg setting
|
// priority: default setting -> prop setting -> arg setting
|
||||||
|
|
@ -432,6 +442,7 @@ public final class Main {
|
||||||
((BisocketServerInvoker) invoker).setSecondaryBindPort(managerFactory.configSettings().getSecondaryBindPort());
|
((BisocketServerInvoker) invoker).setSecondaryBindPort(managerFactory.configSettings().getSecondaryBindPort());
|
||||||
((BisocketServerInvoker) invoker).setBacklog(managerFactory.configSettings().getBacklogSize());
|
((BisocketServerInvoker) invoker).setBacklog(managerFactory.configSettings().getBacklogSize());
|
||||||
((BisocketServerInvoker) invoker).setNumAcceptThreads(managerFactory.configSettings().getNumAcceptThreads());
|
((BisocketServerInvoker) invoker).setNumAcceptThreads(managerFactory.configSettings().getNumAcceptThreads());
|
||||||
|
((BisocketServerInvoker) invoker).setIdleTimeout(SERVER_WORKER_THREAD_IDLE_TIMEOUT_SECS);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue