Просмотр исходного кода

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 лет назад
Родитель
Сommit
e041f199a7
1 измененных файлов: 39 добавлений и 3 удалений
  1. +39
    -3
      src/altk/comm/engine/CommEngine.java

+ 39
- 3
src/altk/comm/engine/CommEngine.java Просмотреть файл

@@ -35,7 +35,12 @@ public abstract class CommEngine extends HttpServlet
private static final int SCHEDULER_THREAD_POOL_SIZE = 1;
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.
*/
@@ -69,6 +74,14 @@ public abstract class CommEngine extends HttpServlet

private int completedJobCount = 0;

private int serviceThreadPoolSize;

private int postbackMaxQueueSize;

private int postbackSenderPoolSize;

private int postbackMaxBatchSize;

abstract protected Broadcast mkBroadcast();
public CommEngine(String engineName)
@@ -118,6 +131,26 @@ public abstract class CommEngine extends HttpServlet
deadBroadcastViewingMinutes = Long.parseLong(periodStr);
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.scheduleAtFixedRate(new Runnable() { public void run() { purgeStaleBroadcasts();}},
deadBroadcastViewingMinutes, deadBroadcastViewingMinutes, TimeUnit.MINUTES);
@@ -153,9 +186,11 @@ public abstract class CommEngine extends HttpServlet
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
{
myException = null;
try
{
Broadcast broadcast = mkBroadcast();
broadcast.setServiceThreadPoolsize(serviceThreadPoolSize);
try
{
broadcast.decode(request, notInService);
@@ -178,7 +213,8 @@ public abstract class CommEngine extends HttpServlet
postBack = postBackMap.get(postBackURL);
if (postBack == null)
{
postBack = new PostBack(postBackURL, broadcast.broadcastType + "_status");
postBack = new PostBack(postBackURL, broadcast.broadcastType + "_status",
postbackMaxQueueSize, postbackSenderPoolSize, postbackMaxBatchSize);
postBackMap.put(postBackURL, postBack);
}
}
@@ -206,7 +242,7 @@ public abstract class CommEngine extends HttpServlet
{
// Put broadcast in broadcasts map.
String broadcastId = broadcast.getBroadcastId();
if (broadcastId.length() != 0)
if (broadcastId != null && broadcastId.length() != 0)
{
broadcasts.put(broadcastId, broadcast);
}


Загрузка…
Отмена
Сохранить