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);
            }
        }
Example #2
0
        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));
            }
        }