public OnePublisherToOneProcessorRawBatchThroughputTest()
     : base(TestName, 1000L * 1000L * 100L)
 {
     sequencer  = new SingleProducerSequencer(BUFFER_SIZE, new YieldingWaitStrategy());
     myRunnable = new MyRunnable(sequencer);
     sequencer.AddGatingSequences(myRunnable.GetSequence);
 }
コード例 #2
0
        public override void Run(EPServiceProvider epService)
        {
            var eplStatement = "create context MyContext start PayloadEvent end after 0.5 seconds";

            epService.EPAdministrator.CreateEPL(eplStatement);

            var aggStatement = "@Name('select') context MyContext " +
                               "select count(*) as theCount " +
                               "from PayloadEvent " +
                               "output snapshot when terminated";
            var epAggStatement = epService.EPAdministrator.CreateEPL(aggStatement);
            var listener       = new MyListener();

            epAggStatement.Events += listener.Update;

            // start thread
            long numEvents  = 10000000;
            var  myRunnable = new MyRunnable(epService, numEvents);
            var  thread     = new Thread(myRunnable.Run);

            thread.Start();
            thread.Join();

            Thread.Sleep(1000);

            // assert
            Assert.IsNull(myRunnable.Exception);
            Assert.AreEqual(numEvents, listener.Total);
        }
 public OnePublisherToOneProcessorRawBatchThroughputTest()
     : base(TestName, 1000L * 1000L * 100L)
 {
     sequencer = new SingleProducerSequencer(BUFFER_SIZE, new YieldingWaitStrategy());
     myRunnable = new MyRunnable(sequencer);
     sequencer.AddGatingSequences(myRunnable.GetSequence);
 }
コード例 #4
0
        public void Run(RegressionEnvironment env)
        {
            var path = new RegressionPath();
            var eplStatement = "create context MyContext start PayloadEvent end after 0.5 seconds";
            env.CompileDeploy(eplStatement, path);

            var aggStatement = "@Name('select') context MyContext " +
                               "select count(*) as theCount " +
                               "from PayloadEvent " +
                               "output snapshot when terminated";
            env.CompileDeploy(aggStatement, path);
            var listener = new MyListener();
            env.Statement("select").AddListener(listener);

            // start thread
            long numEvents = 10000000;
            var myRunnable = new MyRunnable(env.Runtime, numEvents);
            var thread = new Thread(myRunnable.Run);
            thread.Name = typeof(MultithreadContextStartedBySameEvent).Name;
            thread.Start();
            SupportCompileDeployUtil.ThreadJoin(thread);

            SupportCompileDeployUtil.ThreadSleep(1000);

            // assert
            Assert.IsNull(myRunnable.exception);
            Assert.AreEqual(numEvents, listener.total);

            env.UndeployAll();
        }
コード例 #5
0
        public void TestMTTerminateFault()
        {
            var config = SupportConfigFactory.GetConfiguration();

            config.EngineDefaults.ThreadingConfig.IsInternalTimerEnabled = true;
            config.AddEventType(typeof(StartContextEvent));
            config.AddEventType(typeof(PayloadEvent));
            var epService = EPServiceProviderManager.GetDefaultProvider(config);

            epService.Initialize();

            var eplStatement = "create context StartThenTwoSeconds start StartContextEvent end after 2 seconds";

            epService.EPAdministrator.CreateEPL(eplStatement);

            var aggStatement = "@Name('select') context StartThenTwoSeconds " +
                               "select Account, count(*) as totalCount " +
                               "from PayloadEvent " +
                               "group by Account " +
                               "output snapshot when terminated";
            var epAggStatement = epService.EPAdministrator.CreateEPL(aggStatement);

            epAggStatement.Events += (sender, args) => {
                // no action, still listening to make sure select-clause evaluates
            };

            // start context
            epService.EPRuntime.SendEvent(new StartContextEvent());

            // start threads
            IList <Thread>     threads   = new List <Thread>();
            IList <MyRunnable> runnables = new List <MyRunnable>();

            for (var i = 0; i < 8; i++)
            {
                var myRunnable = new MyRunnable(epService);
                runnables.Add(myRunnable);
                var thread = new Thread(myRunnable.Run)
                {
                    Name = "Thread" + i
                };
                thread.Start();
                threads.Add(thread);
            }

            // join
            foreach (var thread in threads)
            {
                thread.Join();
            }

            // assert
            foreach (var runnable in runnables)
            {
                Assert.IsNull(runnable.Exception);
            }
        }
コード例 #6
0
        RinexNavigationParserGps getRNPByTimestamp(long unixTime, Location initialLocation)
        {
            RinexNavigationParserGps rnp = null;
            long reqTime = unixTime;

            //        do {
            // found none, retrieve from urltemplate
            Time t = new Time(reqTime);
            //System.out.println("request: "+unixTime+" "+(new Date(t.getMsec()))+" week:"+t.getGpsWeek()+" "+t.getGpsWeekDay());

            //final string url = t.formatTemplate(urltemplate);
            string url = "supl.google.com";

            if (pool.ContainsKey(url))
            {
                lock (this) {
                    rnp = pool[url];
                }
            }
            else
            {
                if (!retrievingFromServer.Contains(url))
                {
                    retrievingFromServer.Add(url);
                    MyRunnable mr = new MyRunnable();
                    mr.url                  = url;
                    mr.initialLocation      = initialLocation;
                    mr.retrievingFromServer = retrievingFromServer;
                    mr.pool                 = pool;

                    ThreadStart             childref    = new ThreadStart(mr.DoStuff);
                    System.Threading.Thread childThread = new System.Threading.Thread(childref);
                    childThread.Start();


                    /*
                     * (new Thread(new Runnable() {
                     *  @Override
                     *  public void run()
                     * {
                     * }
                     * })).start();*/
                }
                return(null);
            }

            return(rnp);

//        } while (waitForData && rnp == null);
        }
コード例 #7
0
        public void Run(RegressionEnvironment env)
        {
            var path = new RegressionPath();
            var eplStatement = "create context StartThenTwoSeconds start StartContextEvent end after 2 seconds";
            env.CompileDeploy(eplStatement, path);

            var aggStatement = "@Name('select') context StartThenTwoSeconds " +
                               "select Account, count(*) as totalCount " +
                               "from PayloadEvent " +
                               "group by Account " +
                               "output snapshot when terminated";
            env.CompileDeploy(aggStatement, path);
            env.Statement("select").Events += (
                sender,
                args) => {
                // no action, still listening to make sure select-clause evaluates
            };

            // start context
            env.SendEventBean(new StartContextEvent());

            // start threads
            IList<Thread> threads = new List<Thread>();
            IList<MyRunnable> runnables = new List<MyRunnable>();
            for (var i = 0; i < 8; i++) {
                var myRunnable = new MyRunnable(env.Runtime);
                runnables.Add(myRunnable);
                var thread = new Thread(myRunnable.Run);
                thread.Name = GetType().Name + "-Thread" + i;
                thread.Start();
                threads.Add(thread);
            }

            // join
            foreach (var thread in threads) {
                ThreadJoin(thread);
            }

            // assert
            foreach (var runnable in runnables) {
                Assert.IsNull(runnable.Exception);
            }

            env.UndeployAll();
        }
コード例 #8
0
        public override void Run(EPServiceProvider epService)
        {
            var eplStatement = "create context StartThenTwoSeconds start StartContextEvent end after 2 seconds";
            epService.EPAdministrator.CreateEPL(eplStatement);

            var aggStatement = "@Name('select') context StartThenTwoSeconds " +
                               "select account, count(*) as totalCount " +
                               "from PayloadEvent " +
                               "group by account " +
                               "output snapshot when terminated";
            var epAggStatement = epService.EPAdministrator.CreateEPL(aggStatement);
            epAggStatement.Events += (sender, args) =>
            {
                // no action, still listening to make sure select-clause evaluates
            };

            // start context
            epService.EPRuntime.SendEvent(new StartContextEvent());

            // start threads
            var threads = new List<Thread>();
            var runnables = new List<MyRunnable>();
            for (var i = 0; i < 8; i++)
            {
                var myRunnable = new MyRunnable(epService);
                runnables.Add(myRunnable);
                var thread = new Thread(myRunnable.Run);
                thread.Name = "Thread" + i;
                thread.Start();
                threads.Add(thread);
            }

            // join
            foreach (var thread in threads)
            {
                thread.Join();
            }

            // assert
            foreach (var runnable in runnables)
            {
                Assert.IsNull(runnable.Exception);
            }
        }
コード例 #9
0
        public void TestMT()
        {
            var config = SupportConfigFactory.GetConfiguration();

            config.EngineDefaults.ThreadingConfig.IsInternalTimerEnabled = true;
            config.AddEventType(typeof(PayloadEvent));
            var epService = EPServiceProviderManager.GetDefaultProvider(config);

            epService.Initialize();

            var eplStatement = "create context MyContext start PayloadEvent end after 0.5 seconds";

            epService.EPAdministrator.CreateEPL(eplStatement);

            var aggStatement = "@Name('select') context MyContext " +
                               "select count(*) as theCount " +
                               "from PayloadEvent " +
                               "output snapshot when terminated";
            var epAggStatement = epService.EPAdministrator.CreateEPL(aggStatement);
            var listener       = new MyListener();

            epAggStatement.Events += listener.Update;

            // start thread
            long numEvents  = 10000000;
            var  myRunnable = new MyRunnable(epService, numEvents);
            var  thread     = new Thread(myRunnable.Run);

            thread.Start();
            thread.Join();

            Thread.Sleep(1000);

            // assert
            Assert.IsNull(myRunnable.Exception);
            Assert.AreEqual(numEvents, listener.Total);
        }
コード例 #10
0
 public OneToOneRawBatchThroughputTest()
 {
     _myRunnable = new MyRunnable(_sequencer);
     _sequencer.AddGatingSequences(_myRunnable.Sequence);
 }
コード例 #11
0
 public OneToOneRawThroughputTest()
 {
     _taskScheduler = new RoundRobinThreadAffinedTaskScheduler(2);
     _myRunnable    = new MyRunnable(_sequencer);
     _sequencer.AddGatingSequences(_myRunnable.Sequence);
 }
コード例 #12
0
 public OneToOneRawBatchThroughputTest()
 {
     _myRunnable = new MyRunnable(_sequencer);
     _sequencer.AddGatingSequences(_myRunnable.Sequence);
 }
コード例 #13
0
 public OneToOneRawThroughputTest()
 {
     _taskScheduler = new RoundRobinThreadAffinedTaskScheduler(2);
     _myRunnable = new MyRunnable(_sequencer);
     _sequencer.AddGatingSequences(_myRunnable.Sequence);
 }