Ignore:
Timestamp:
10/11/13 13:44:19 (11 years ago)
Author:
stoda
Message:

PoolThreadSupervisor? done

TODO: revise all threads

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/supervisor/src/main/java/omq/server/RemoteObject.java

    r100 r101  
    3535        private transient RemoteThreadPool pool;
    3636        private transient Map<String, List<Class<?>>> params;
    37         private transient List<InvocationThread> invocationList;
    3837
    3938        private static final Map<String, Class<?>> primitiveClasses = new HashMap<String, Class<?>>();
     
    7473                }
    7574
    76                 // Get num threads to use
    77                 int numThreads = Integer.parseInt(env.getProperty(ParameterQueue.NUM_THREADS, "1"));
    78                 invocationList = new ArrayList<InvocationThread>(numThreads);
    79 
    80                 // Start invocation threads
    81                 for (int i = 0; i < numThreads; i++) {
    82                         InvocationThread iThread = new InvocationThread(this, broker);
    83                         invocationList.add(iThread);
    84                         iThread.start();
    85                 }
    86 
     75                // Get pool information
     76                int minPoolThreads = Integer.parseInt(env.getProperty(ParameterQueue.MIN_POOL_THREADS, "1"));
     77                int maxPoolThreads = Integer.parseInt(env.getProperty(ParameterQueue.MAX_POOL_THREADS, "1"));
     78                long refresh = Long.parseLong(env.getProperty(ParameterQueue.POOL_REFRESH_TIME, "60000"));
     79                long keepAliveTime = Long.parseLong(env.getProperty(ParameterQueue.KEEP_ALIVE_TIME, "30000"));
     80                int maxMessagesPerThread = Integer.parseInt(env.getProperty(ParameterQueue.MAX_MESSAGES_PER_THREAD, "5"));
     81
     82                // Create the pool & start it
     83                pool = new RemoteThreadPool(minPoolThreads, maxPoolThreads, refresh, keepAliveTime, maxMessagesPerThread, this, broker);
     84                pool.start();
    8785        }
    8886
     
    10098        public void kill() throws IOException {
    10199                logger.info("Killing objectmq: " + this.getRef());
    102                 for (InvocationThread iThread : invocationList) {
    103                         iThread.kill();
    104                 }
     100                pool.kill();
    105101        }
    106102
     
    205201        }
    206202
     203        public RemoteThreadPool getPool() {
     204                return pool;
     205        }
     206
    207207        public Properties getEnv() {
    208208                return env;
Note: See TracChangeset for help on using the changeset viewer.