From 0aee445e007bf53f90477244f371303efdf09536 Mon Sep 17 00:00:00 2001 From: Jonathan Williams Date: Sat, 26 Oct 2013 16:36:48 -0500 Subject: [PATCH] Added timeout check for status retrieval --- .../mineplex/hub/server/ServerManager.java | 5 +- .../LOC.Website.Web.Publish.xml | 626 +++++++++--------- Website/LOCWebsite.suo | Bin 474624 -> 474624 bytes 3 files changed, 317 insertions(+), 314 deletions(-) diff --git a/Plugins/Mineplex.Hub/src/mineplex/hub/server/ServerManager.java b/Plugins/Mineplex.Hub/src/mineplex/hub/server/ServerManager.java index 89fa1e5ca..d08242d0f 100644 --- a/Plugins/Mineplex.Hub/src/mineplex/hub/server/ServerManager.java +++ b/Plugins/Mineplex.Hub/src/mineplex/hub/server/ServerManager.java @@ -75,6 +75,7 @@ public class ServerManager extends MiniPlugin private boolean _alternateUpdateFire = false; private boolean _retrieving = false; + private long _lastRetrieve = 0; public ServerManager(JavaPlugin plugin, CoreClientManager clientManager, DonationManager donationManager, Portal portal, PartyManager partyManager, ServerStatusManager statusManager, HubManager hubManager, StackerManager stackerManager) { @@ -280,7 +281,7 @@ public class ServerManager extends MiniPlugin @EventHandler public void updateServers(UpdateEvent event) { - if (event.getType() != UpdateType.SEC || _retrieving) + if (event.getType() != UpdateType.SEC || (_retrieving && System.currentTimeMillis() - _lastRetrieve <= 5000)) return; _alternateUpdateFire = !_alternateUpdateFire; @@ -290,6 +291,7 @@ public class ServerManager extends MiniPlugin _retrieving = true; + _statusManager.retrieveServerStatuses(new Callback>() { public void run(List serverStatusList) @@ -343,6 +345,7 @@ public class ServerManager extends MiniPlugin // Reset _retrieving = false; + _lastRetrieve = System.currentTimeMillis(); } }); } diff --git a/Website/LOC.Website.Web/LOC.Website.Web.Publish.xml b/Website/LOC.Website.Web/LOC.Website.Web.Publish.xml index 337183661..05ceb4e3b 100644 --- a/Website/LOC.Website.Web/LOC.Website.Web.Publish.xml +++ b/Website/LOC.Website.Web/LOC.Website.Web.Publish.xml @@ -1,12 +1,12 @@  + - @@ -19,15 +19,16 @@ - + + - + @@ -41,15 +42,18 @@ - + + + + @@ -58,8 +62,7 @@ - - + @@ -70,23 +73,23 @@ - + + - + - - - + + @@ -94,7 +97,7 @@ - + @@ -102,42 +105,43 @@ - - + - - - + + + - + + - + + - + @@ -148,315 +152,49 @@ - + - - - - + - - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + - - - + + - - + @@ -465,8 +203,8 @@ - - + + @@ -474,19 +212,19 @@ - + - - + + - - - + + - - + + + @@ -501,29 +239,291 @@ - + - + - - + + - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Website/LOCWebsite.suo b/Website/LOCWebsite.suo index 79c3ce56d506c0ae180722dad38be1fe55230d55..25df00210942cb6073304151ef77c464f751fa6c 100644 GIT binary patch delta 12740 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 J6?5$9{{wvxNW=gD delta 12398 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

u_c z{t_igIIhjoStBM}JwD)1(X4TbPZ!rHv=D;-`Ce**b_(~4OgD3;AnZI5Z6!gJoy!Vj zO;QePIxJlxh)7vyf#5T#N>p--%)YuBR!g ztZ5aP*~&Y{vE4wfMl2>)AT9v(GBN6PNHr~6s%`n?n=Zp|x^jlm?v3goxMGSi3%BQ1 z)8=wKQcf`td+C()DpI#`4nC4h2KOo82d)e4UZvEaG2xrkLQqhZ-kpsHLM@Y-oj~^4 zXyC?x6pA*Ul6xafqGo|o7e9%rs`E*Cw1Lj}bw%TTz55l&8c4pGShL=@fSNp%J57Pk z(u|rAH51mvIK$$6<1F> zc19U5X~%MMpTXS$+{@|h|BE1%N)&}pD-jhoB;luJF@`uk+l7bji6PnN;33`vCF~M^$^L|ONppIhLwGeOLc`Q>L>*4ye8Yj(Fx0_@1YBP$!9Jq+jS;vG2y*#K@jB@W-Jro)D)>mwtXmLMgujpQuEVD9h8iQeia1Lj;GekEWT{jdx} zje=$X@GOh8ArWj)&2;2j7A0{mMBxOS8eQ*umot5lb37YxH9`s>D(6BIDy7z$P>7TzVI!a-IlrqFF_ zB(q9x!?B3UmjEgb+a>ds@i+`;JILEdt!9S|K@hNB-ya^8EN7-;>h4fcp;FZ|is1L= zA$n%(G8S%}XvQRKu$m4|=*E$)c)kA~GPa1D=hM!eyctnXgAKig~Dj8m?-IRCadlqxvMPoj7Do8Re))p=egQsYR2UAF#PP-jzpAKZ=8uP_rjNmNwNf89N<~-u5lbpFXpnQF-8iX}i_l+)J_Zt= zM{OlYCm3$GJi8Sk<~TW59^s2o6f+sKR{RY->tQ$%GIgeu@~<;!2V1YZ(LM4e@bp0@>%{ z!5AV!Ap2DV26#a(bu}uB;BKiry$B1wtDnGnce$=-Hp_Vs4tL7>et10s0ll#9#_;X^ zb+E83J=7+U5f@wGJPbf*-M|z%0;oieeT578Z2y-cCul3=F}X*n9)(PJ21q_USHfy2 zQnQsJscvNQc~A-*YNBwHlXR|o(^zDiJP3uWFUczXnk3=1#tar??kHM44-@lE|3q8l z^CY6$sCsVg`2-v=OP9bOgBUK|f#ba5)kp3O1OuvTgmAQ%(aD#v#{C=AMniruFGkdF z-GCjVL;wV5#BI|m$U2gH>ngP39PUQ-T6C0>15xj3LLk7=7sc~ZHj z?ibAi$nVv1D5pXzVYN~on=7vN$HBlkS~|sgwG`S@p&cS?1>UB6wd3S!H@h3EG^o>+ zS`Zyd^U=~|P@AH;8qQF4m}k<`LUZh%g<7n}{zPwPm@fucjn;7|T_X(U^o%P88LAq9viI!oeK*;G4w|IyWWOEx{ zq_&A_MVA@+(cho+iNA5`NIo@n!g6sQ9eGtGmocOVgN$4j2dl`qT#Y>7{_u+N@s$Bd&B8@=VjL4HwM3u0qQ~^hINWzT^PpMV#TY1aRopJ?6gwU01(o