Browse Source

Added reading of these parameters in configuration properties file:

dead_broadcast_viewing_period = 10
service_threadpool_size = 4
postback_threadpool_size = 3
postback_max_queue_size = 1999
postback_max_batch_size = 99
tags/Production_5_8_2012
ymlam 13 years ago
parent
commit
e041f199a7
1 changed files with 39 additions and 3 deletions
  1. +39
    -3
      src/altk/comm/engine/CommEngine.java

+ 39
- 3
src/altk/comm/engine/CommEngine.java View File

@@ -35,7 +35,12 @@ public abstract class CommEngine extends HttpServlet
private static final int SCHEDULER_THREAD_POOL_SIZE = 1; private static final int SCHEDULER_THREAD_POOL_SIZE = 1;
private static final long DEAD_BROADCAST_VIEWING_PERIOD_DEFAULT = 60; private static final long DEAD_BROADCAST_VIEWING_PERIOD_DEFAULT = 60;

private static final int SERVICE_THREADPOOL_SIZE_DEFAULT = 1;

private static final int POSTBACK_THREADPOOL_SIZE_DEFAULT = 2;
private static final int POSTBACK_MAX_QUEUE_SIZE_DEFAULT = 10000;
private static final int POSTBACK_MAX_BATCH_SIZE_DEFAULT = 100;
/** /**
* Maps a broadcastId to a broadcast. * Maps a broadcastId to a broadcast.
*/ */
@@ -69,6 +74,14 @@ public abstract class CommEngine extends HttpServlet


private int completedJobCount = 0; private int completedJobCount = 0;


private int serviceThreadPoolSize;

private int postbackMaxQueueSize;

private int postbackSenderPoolSize;

private int postbackMaxBatchSize;

abstract protected Broadcast mkBroadcast(); abstract protected Broadcast mkBroadcast();
public CommEngine(String engineName) public CommEngine(String engineName)
@@ -118,6 +131,26 @@ public abstract class CommEngine extends HttpServlet
deadBroadcastViewingMinutes = Long.parseLong(periodStr); deadBroadcastViewingMinutes = Long.parseLong(periodStr);
CommonLogger.startup.info(String.format("Dead broadcast viewing period: %d minutes", deadBroadcastViewingMinutes)); CommonLogger.startup.info(String.format("Dead broadcast viewing period: %d minutes", deadBroadcastViewingMinutes));


String str = config.getProperty("service_threadpool_size",
new Integer(SERVICE_THREADPOOL_SIZE_DEFAULT).toString());
serviceThreadPoolSize = Integer.parseInt(str);
CommonLogger.startup.info(String.format("service thread pool size: %d", serviceThreadPoolSize));

String string = config.getProperty("postback_max_queue_size",
new Integer(POSTBACK_MAX_QUEUE_SIZE_DEFAULT).toString());
postbackMaxQueueSize = Integer.parseInt(string);
CommonLogger.activity.info("Postback max queue size = " + postbackMaxQueueSize);

string = config.getProperty("postback_threadpool_size",
new Integer(POSTBACK_THREADPOOL_SIZE_DEFAULT).toString());
postbackSenderPoolSize = Integer.parseInt(string);
CommonLogger.activity.info("Postback threadpool size = " + postbackSenderPoolSize);
string = config.getProperty("postback_max_batch_size",
new Integer(POSTBACK_MAX_BATCH_SIZE_DEFAULT).toString());
postbackMaxBatchSize = Integer.parseInt(string);
CommonLogger.activity.info("Postback max batch size = " + postbackMaxBatchSize);
scheduler = Executors.newScheduledThreadPool(SCHEDULER_THREAD_POOL_SIZE); scheduler = Executors.newScheduledThreadPool(SCHEDULER_THREAD_POOL_SIZE);
scheduler.scheduleAtFixedRate(new Runnable() { public void run() { purgeStaleBroadcasts();}}, scheduler.scheduleAtFixedRate(new Runnable() { public void run() { purgeStaleBroadcasts();}},
deadBroadcastViewingMinutes, deadBroadcastViewingMinutes, TimeUnit.MINUTES); deadBroadcastViewingMinutes, deadBroadcastViewingMinutes, TimeUnit.MINUTES);
@@ -153,9 +186,11 @@ public abstract class CommEngine extends HttpServlet
@Override @Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) protected void doPost(HttpServletRequest request, HttpServletResponse response)
{ {
myException = null;
try try
{ {
Broadcast broadcast = mkBroadcast(); Broadcast broadcast = mkBroadcast();
broadcast.setServiceThreadPoolsize(serviceThreadPoolSize);
try try
{ {
broadcast.decode(request, notInService); broadcast.decode(request, notInService);
@@ -178,7 +213,8 @@ public abstract class CommEngine extends HttpServlet
postBack = postBackMap.get(postBackURL); postBack = postBackMap.get(postBackURL);
if (postBack == null) if (postBack == null)
{ {
postBack = new PostBack(postBackURL, broadcast.broadcastType + "_status");
postBack = new PostBack(postBackURL, broadcast.broadcastType + "_status",
postbackMaxQueueSize, postbackSenderPoolSize, postbackMaxBatchSize);
postBackMap.put(postBackURL, postBack); postBackMap.put(postBackURL, postBack);
} }
} }
@@ -206,7 +242,7 @@ public abstract class CommEngine extends HttpServlet
{ {
// Put broadcast in broadcasts map. // Put broadcast in broadcasts map.
String broadcastId = broadcast.getBroadcastId(); String broadcastId = broadcast.getBroadcastId();
if (broadcastId.length() != 0)
if (broadcastId != null && broadcastId.length() != 0)
{ {
broadcasts.put(broadcastId, broadcast); broadcasts.put(broadcastId, broadcast);
} }


Loading…
Cancel
Save