Skip to content

Commit e114462

Browse files
authored
Merge pull request #207 from codeine-cd/codeine-205
codeine-205 ReloadConfigurationServlet need to sleep lees time on non…
2 parents 224b222 + 5a870f3 commit e114462

File tree

2 files changed

+27
-13
lines changed

2 files changed

+27
-13
lines changed

src/common/codeine/model/Constants.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -217,6 +217,7 @@ public static class UrlParameters {
217217
public static final String FORCE = "force";
218218
public static final String ADDRESS = "server";
219219
public static final String INCLUDE_OUTPUT = "output";
220+
public static final String SYNC_REQUEST = "sync";
220221
}
221222

222223
public static String getPersistentDir() {
Lines changed: 26 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,41 +1,43 @@
11
package codeine.servlets;
22

3+
import codeine.configuration.IConfigurationManager;
4+
import codeine.executer.ThreadPoolUtils;
5+
import codeine.jsons.global.GlobalConfigurationJsonStore;
6+
import codeine.model.Constants.UrlParameters;
7+
import codeine.nodes.NodesRunner;
8+
import codeine.servlet.AbstractServlet;
9+
import com.google.inject.Inject;
310
import java.io.IOException;
411
import java.util.Random;
512
import java.util.concurrent.ExecutorService;
613
import java.util.concurrent.TimeUnit;
7-
814
import javax.servlet.ServletException;
9-
import javax.servlet.http.HttpServlet;
1015
import javax.servlet.http.HttpServletRequest;
1116
import javax.servlet.http.HttpServletResponse;
12-
13-
import codeine.executer.ThreadPoolUtils;
1417
import org.apache.log4j.Logger;
1518

16-
import codeine.configuration.IConfigurationManager;
17-
import codeine.nodes.NodesRunner;
18-
19-
import com.google.inject.Inject;
20-
import sun.nio.ch.ThreadPool;
21-
22-
public class ReloadConfigurationServlet extends HttpServlet {
19+
public class ReloadConfigurationServlet extends AbstractServlet {
2320
private static final Logger log = Logger.getLogger(ReloadConfigurationServlet.class);
2421
private static final long serialVersionUID = 1L;
2522
@Inject
2623
private NodesRunner nodesRunner;
2724
@Inject
2825
private IConfigurationManager configurationManager;
26+
@Inject
27+
private GlobalConfigurationJsonStore globalConfigurationJsonStore;
2928
private ExecutorService threadPool = ThreadPoolUtils.newThreadPool(1, "ReloadConfigurationServlet");
3029

3130
@Override
3231
public void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException {
3332
log.info("ReloadConfigurationServlet called");
33+
String parameter = UrlParameters.SYNC_REQUEST;
34+
boolean isSync = Boolean.parseBoolean(getParameter(req, parameter));
3435
Runnable thread = new Runnable() {
3536
@Override
3637
public void run() {
3738
try {
38-
int millis = new Random().nextInt((int) TimeUnit.MINUTES.toMillis(1));
39+
long duration = globalConfigurationJsonStore.get().large_deployment() ? 60 : 25;
40+
int millis = new Random().nextInt((int) TimeUnit.SECONDS.toMillis(duration));
3941
log.info("ReloadConfigurationServlet going to sleep " + millis);
4042
Thread.sleep(millis);
4143
} catch (InterruptedException e) {
@@ -46,7 +48,18 @@ public void run() {
4648
log.info("ReloadConfigurationServlet async finished");
4749
}
4850
};
49-
threadPool.submit(thread);
51+
if (isSync) {
52+
log.info("Running is sync mode");
53+
thread.run();
54+
}
55+
else {
56+
threadPool.submit(thread);
57+
}
5058
res.getWriter().print("{result:'OK'}");
5159
}
60+
61+
@Override
62+
protected boolean checkPermissions(HttpServletRequest request) {
63+
return true;
64+
}
5265
}

0 commit comments

Comments
 (0)