private void SetUp(int numSymbols, int numThreads, int numEvents, double timeWindowSize) { var epService = EPServiceProviderManager.GetDefaultProvider(SupportConfigFactory.GetConfiguration()); epService.Initialize(); // Create a statement for N number of Symbols, each it's own listener var symbols = new string[numSymbols]; _listeners = new ResultUpdateListener[symbols.Length]; for (var i = 0; i < symbols.Length; i++) { symbols[i] = "S" + i; var viewExpr = "select Symbol, sum(Volume) as sumVol " + "from " + typeof(SupportMarketDataBean).FullName + "(Symbol='" + symbols[i] + "').win:time(" + timeWindowSize + ")"; var testStmt = epService.EPAdministrator.CreateEPL(viewExpr); _listeners[i] = new ResultUpdateListener(); testStmt.Events += _listeners[i].Update; } // Create threads to send events _threads = new Thread[numThreads]; var runnables = new TimeWinRunnable[_threads.Length]; var rlock = LockManager.CreateDefaultLock(); for (var i = 0; i < _threads.Length; i++) { runnables[i] = new TimeWinRunnable(i, epService.EPRuntime, rlock, symbols, numEvents); _threads[i] = new Thread(runnables[i].Run); } }
private void SetUp(int numSymbols, int numThreads, int numEvents, double timeWindowSize) { EPServiceProvider epService = EPServiceProviderManager.GetDefaultProvider(SupportConfigFactory.GetConfiguration()); epService.Initialize(); // Create a statement for Count number of symbols, each it's own listener var symbols = new String[numSymbols]; _listeners = new ResultUpdateListener[symbols.Length]; for (int i = 0; i < symbols.Length; i++) { var index = i; symbols[i] = "S" + i; String viewExpr = "select Symbol, sum(Volume) as sumVol " + "from " + typeof(SupportMarketDataBean).FullName + "(Symbol='" + symbols[i] + "').win:time(" + timeWindowSize + ")"; EPStatement testStmt = epService.EPAdministrator.CreateEPL(viewExpr); _listeners[i] = new ResultUpdateListener(); testStmt.Events += (s, e) => _listeners[index].Update(e.NewEvents, e.OldEvents); } // Create threads to send events _threads = new List <Thread>(); var @lock = LockManager.CreateDefaultLock(); for (int i = 0; i < numThreads; i++) { var runnable = new TimeWinRunnable(i, epService.EPRuntime, @lock, symbols, numEvents); _threads.Add(new Thread(runnable.Run)); } }