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( EPServiceProvider epService, int numSymbols, int numThreads, int numEvents, double timeWindowSize) { _threads = new Thread[numThreads]; _listeners = new ResultUpdateListener[numSymbols]; // 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 epl = "select symbol, sum(volume) as sumVol " + "from " + typeof(SupportMarketDataBean).FullName + "(symbol='" + symbols[i] + "')#time(" + timeWindowSize + ")"; var testStmt = epService.EPAdministrator.CreateEPL(epl); _listeners[i] = new ResultUpdateListener(); testStmt.Events += _listeners[i].Update; } // Create threads to send events var runnables = new TimeWinRunnable[_threads.Length]; var rlock = SupportContainer.Instance.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)); } }
private void SetUp( RegressionEnvironment env, int numSymbols, int numThreads, int numEvents, double timeWindowSize) { threads = new Thread[numThreads]; listeners = new ResultUpdateListener[numSymbols]; // 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++) { var annotation = $"@Name('stmt_{i}')"; symbols[i] = "S" + i; var epl = annotation + "select Symbol, sum(Volume) as sumVol " + " from SupportMarketDataBean" + "(Symbol='" + symbols[i] + "')" + "#time(" + timeWindowSize + ")"; env.CompileDeploy(epl); var testStmt = env.Statement("stmt_" + i); listeners[i] = new ResultUpdateListener(); testStmt.AddListener(listeners[i]); } // Create threads to send events var runnables = new TimeWinRunnable[threads.Length]; var @lock = new MonitorSpinLock(); for (var i = 0; i < threads.Length; i++) { runnables[i] = new TimeWinRunnable(i, env, @lock, symbols, numEvents); threads[i] = new Thread(runnables[i].Run) { Name = typeof(MultithreadViewTimeWindowSceneTwo).Name }; } }