Exemplo n.º 1
0
        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);
            }
        }
Exemplo n.º 2
0
        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);
            }
        }
Exemplo n.º 3
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));
            }
        }
        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
                };
            }
        }