public void TryCount(int numUsers, int numOrders, int numThreads) { for (int i = 0; i < numUsers; i++) { _engine.EPAdministrator.CreateEPL("@Name('create_" + i + "') create window MyWindow_" + i + "#unique(OrderId) as select * from OrderEvent"); _engine.EPAdministrator.CreateEPL("@Name('insert_" + i + "') insert into MyWindow_" + i + " select * from OrderEvent(UserId = 'user" + i + "')"); _engine.EPAdministrator.CreateEPL("on OrderCancelEvent as d delete from MyWindow_" + i + " w where w.OrderId = d.OrderId"); _engine.EPAdministrator.CreateEPL("@Name('select_" + i + "') on OrderEvent as s select sum(w.Price) from MyWindow_" + i + " w where w.Side = s.Side group by w.Side"); } RunnableOrderSim[] runnables = new RunnableOrderSim[numThreads]; Thread[] threads = new Thread[numThreads]; for (int i = 0; i < numThreads; i++) { runnables[i] = new RunnableOrderSim(_engine, i, numUsers, numOrders); threads[i] = new Thread(runnables[i].Run); } for (int i = 0; i < threads.Length; i++) { threads[i].Start(); } for (int i = 0; i < threads.Length; i++) { threads[i].Join(); Assert.IsTrue(runnables[i].Status); } }
public void TryCount( RegressionEnvironment env, int numUsers, int numOrders, int numThreads) { var path = new RegressionPath(); for (var i = 0; i < numUsers; i++) { env.CompileDeploy( "@Name('create_" + i + "') create window MyWindow_" + i + "#unique(OrderId) as select * from OrderEvent", path); env.CompileDeploy( "@Name('insert_" + i + "') insert into MyWindow_" + i + " select * from OrderEvent(UserId = 'user" + i + "')", path); env.CompileDeploy( "on OrderCancelEvent as d delete from MyWindow_" + i + " w where w.OrderId = d.OrderId", path); env.CompileDeploy( "@Name('select_" + i + "') on OrderEvent as s select sum(w.Price) from MyWindow_" + i + " w where w.Side = s.Side group by w.Side", path); } var runnables = new RunnableOrderSim[numThreads]; var threads = new Thread[numThreads]; for (var i = 0; i < numThreads; i++) { runnables[i] = new RunnableOrderSim(env.Runtime, i, numUsers, numOrders); threads[i] = new Thread(runnables[i].Run) { Name = typeof(MultithreadStmtNamedWindowMultiple).Name }; } for (var i = 0; i < threads.Length; i++) { threads[i].Start(); } for (var i = 0; i < threads.Length; i++) { SupportCompileDeployUtil.ThreadJoin(threads[i]); Assert.IsTrue(runnables[i].Status); } env.UndeployAll(); }
public void TryCount(EPServiceProvider epService, int numUsers, int numOrders, int numThreads) { for (var i = 0; i < numUsers; i++) { epService.EPAdministrator.CreateEPL( "@Name('create_" + i + "') create window MyWindow_" + i + "#unique(orderId) as select * from OrderEvent"); epService.EPAdministrator.CreateEPL( "@Name('insert_" + i + "') insert into MyWindow_" + i + " select * from OrderEvent(userId = 'user" + i + "')"); epService.EPAdministrator.CreateEPL( "on OrderCancelEvent as d delete from MyWindow_" + i + " w where w.orderId = d.orderId"); epService.EPAdministrator.CreateEPL( "@Name('select_" + i + "') on OrderEvent as s select sum(w.price) from MyWindow_" + i + " w where w.side = s.side group by w.side"); } var runnables = new RunnableOrderSim[numThreads]; var threads = new Thread[numThreads]; for (var i = 0; i < numThreads; i++) { runnables[i] = new RunnableOrderSim(epService, i, numUsers, numOrders); threads[i] = new Thread(runnables[i].Run); } for (var i = 0; i < threads.Length; i++) { threads[i].Start(); } for (var i = 0; i < threads.Length; i++) { threads[i].Join(); Assert.IsTrue(runnables[i].Status); } }