Beispiel #1
0
        public void JobShouldRunIfRunnerThreadIsRunning()
        {
            string name            = MethodBase.GetCurrentMethod().Name;
            JobConductorService fm = GetTestJobConductor(name);

            fm.StopJobRunnerThread();
            fm.JobQueue.Clear();
            fm.StartJobRunnerThread();

            JobConf conf = fm.CreateJob(name);

            TestWorker.ValueToCheck = false;
            TestWorker worker = new TestWorker();

            conf.AddWorker(worker);
            Expect.IsFalse(TestWorker.ValueToCheck);

            bool?          finished = false;
            AutoResetEvent signal   = new AutoResetEvent(false);

            fm.WorkerFinished += (o, a) =>
            {
                Expect.IsTrue(TestWorker.ValueToCheck);
                finished = true;
                signal.Set();
            };

            fm.EnqueueJob(conf);
            signal.WaitOne(10000);
            Expect.IsTrue(finished == true);
        }
Beispiel #2
0
        public async Task DurationWork_ShallRunAllMessagesTest()
        {
            var duration  = TimeSpan.FromSeconds(1);
            var stopWatch = Stopwatch.StartNew();

            var service = new TestWorker
            {
                SleepDurationMilliseconds = 100
            };

            var logger       = new LoggerFactory().CreateLogger <Runner>();
            var threadResult = new ThreadResult();
            var worker       = new Runner(service, threadResult, logger);
            var messageA     = new HttpRequestMessage(HttpMethod.Get, "/a");
            var messageB     = new HttpRequestMessage(HttpMethod.Get, "/b");
            var resetEvent   = new ManualResetEventSlim(false);

            var cts = new CancellationTokenSource(2000);
            var cancellationToken = cts.Token;

            await worker.DurationWork(new[] { messageA, messageB }, duration, stopWatch, resetEvent, cancellationToken);

            var results = threadResult.Results;

            Assert.Equal(2, results.Count);
        }
Beispiel #3
0
        public static void TestMultipleConnectionToMirroredServer()
        {
            string mirroringStateDesc;
            string failoverPartnerName;
            bool   isMirroring    = GetMirroringInfo(DataTestUtility.TcpConnStr, out mirroringStateDesc, out failoverPartnerName);
            bool   isSynchronized = "SYNCHRONIZED".Equals(mirroringStateDesc, StringComparison.InvariantCultureIgnoreCase);

            if (isMirroring && isSynchronized && !string.IsNullOrEmpty(failoverPartnerName))
            {
                SqlConnectionStringBuilder builder = new SqlConnectionStringBuilder(DataTestUtility.TcpConnStr);
                builder.ConnectTimeout = 0;

                TestWorker worker      = new TestWorker(builder.ConnectionString);
                Thread     childThread = new Thread(() => worker.TestMultipleConnection());
                childThread.Start();

                if (workerCompletedEvent.WaitOne(10000))
                {
                    childThread.Join();
                }
                else
                {
                    // currently Thread.Abort() throws PlatformNotSupportedException in CoreFx.
                    childThread.Interrupt();
                    throw new Exception("SqlConnection could not open and close successfully in timely manner. Possibly connection hangs.");
                }
            }
        }
Beispiel #4
0
 private void btnOQuery_Click(object sender, EventArgs e)
 {
     if (TestWorker.IsBusy == false)
     {
         TestWorker.RunWorkerAsync();
     }
 }
Beispiel #5
0
        public void DurationWork_ShallTimeOutTest()
        {
            var duration  = TimeSpan.FromSeconds(2);
            var stopWatch = new Stopwatch();

            var service = new TestWorker
            {
                SleepDurationMilliseconds = 800
            };

            var logger       = new LoggerFactory().CreateLogger <Runner>();
            var threadResult = new ThreadResult();
            var worker       = new Runner(service, threadResult, logger);
            var messageA     = new HttpRequestMessage(HttpMethod.Get, "/a");
            var messageB     = new HttpRequestMessage(HttpMethod.Get, "/b");
            var resetEvent   = new ManualResetEventSlim(false);

            var cts = new CancellationTokenSource(100);
            var cancellationToken = cts.Token;

            Assert.ThrowsAsync <TaskCanceledException>(async() =>
            {
                await worker.DurationWork(new[] { messageA, messageB }, duration, stopWatch, resetEvent, cancellationToken);
            });
        }
        public void TestThrowExceptionInDoWork()
        {
            var bw = new TestWorker();

            bw.DoWork += DoWorkWithException;
            bw.RunWorkerAsync("Exception");
        }
        public async Task <bool> DeleteTest(ObjectId testId)
        {
            var response = await TestWorker.Delete(testId);

            await _redisCache.Del($"Test:{testId}");

            return(response);
        }
Beispiel #8
0
 public JavaUtils(ModulrConfig config, TestWorker worker)
 {
     ModulrJail.Config    = config;
     ModulrJail.WebSocket = worker;
     _config = config;
     _rng    = new Random();
     Clean();
 }
        public async Task <long> DeleteTestsByRoomId(ObjectId roomId)
        {
            (await TestWorker.GetTestsByRoomId(roomId))
            .Select(async test =>
                    await _redisCache.Del($"Test:{test.Id}"));

            return(await TestWorker.DeleteTestsByRoomId(roomId));
        }
Beispiel #10
0
 private void TestWorker_DoWork(object sender, DoWorkEventArgs e)
 {
     try
     {
         TestWorker.ReportProgress(0, "Query Start");
         StockQuery query = new StockQuery();
         query.QueryOTC();
         query.QueryOTCWarrant(DateTime.Now);
         TestWorker.ReportProgress(0, "Query End");
     }
     catch (Exception ex)
     {
         TestWorker.ReportProgress(0, ex.Message);
     }
 }
Beispiel #11
0
 private void StartBtn_Click(object sender, EventArgs e)
 {
     if (StartBtn.Text == "Start" && !TestWorker.IsBusy)
     {
         TestWorker.RunWorkerAsync();
         StartBtn.Text = "Stop";
     }
     else if (TestWorker.IsBusy)
     {
         Character.Navi.Reset();
         TestWorker.CancelAsync();
         StartBtn.Text = "Start";
         Character.Navi.Reset();
     }
 }
Beispiel #12
0
        public IActionResult CopyExample([FromBody] TestWorkerQueryDTO testWorkerDTO)
        {
            Console.WriteLine($"dto=====>{testWorkerDTO.ToJson()}");
            Console.WriteLine($"复制实例");
            var model = WAutoMapper <TestWorkerQueryDTO, TestWorker> .Map(testWorkerDTO);

            Console.WriteLine($"model====>{model.ToJson()}");
            Console.WriteLine($"正常实例");
            var model2 = new TestWorker
            {
                id         = (int)testWorkerDTO.id,
                createTime = testWorkerDTO.createTime,
                name       = testWorkerDTO.name,
                age        = testWorkerDTO.age
            };

            Console.WriteLine($"model====>{model2.ToJson()}");
            return(ApiResult(model));
        }
Beispiel #13
0
        public void CreateWorkerThreads_CountWorkTest()
        {
            var service = new TestWorker
            {
                SleepDurationMilliseconds = 100
            };

            var logger       = new LoggerFactory().CreateLogger <Runner>();
            var threadResult = new ThreadResult();
            var worker       = new Runner(service, threadResult, logger);
            var messageA     = new HttpRequestMessage(HttpMethod.Get, "/a");
            var messageB     = new HttpRequestMessage(HttpMethod.Get, "/b");

            var cts = new CancellationTokenSource(1000);
            var cancellationToken = cts.Token;

            worker.CreateWorkerThreads(1, TimeSpan.FromSeconds(0), 1, 0, new[] { messageA, messageB }, cancellationToken);

            var results = threadResult.Results;

            Assert.Equal(2, results.Count);
        }
        public override void Run()
        {
            // This is a sample worker implementation. Replace with your logic.
            Trace.TraceInformation("TestRequestProcessor entry point called", "Information");

            string requestQueueName        = CloudConfigurationManager.GetSetting("ServiceRequestQueue");
            string storageConnectionString = CloudConfigurationManager.GetSetting("StorageConnectionString");
            int    messagesPerRequest      = Int32.Parse(CloudConfigurationManager.GetSetting("MessagesPerRequest"));
            var    requestTimeout          = TimeSpan.FromSeconds(15); // if the request cannot be completed after this long, let someone else try
            var    testWorker = new TestWorker(storageConnectionString, requestQueueName, requestTimeout, messagesPerRequest);

            try
            {
                Task processRequests = testWorker.ProcessRequestsAsync();
                processRequests.Wait(); // should never return
            }
            catch (Exception ex)
            {
                TestRecorder.LogException(storageConnectionString, RoleEnvironment.CurrentRoleInstance.Id, ex);
                throw;
            }
        }
Beispiel #15
0
        public async Task CountWork_ShallRunOneMessagesTest()
        {
            var service = new TestWorker
            {
                SleepDurationMilliseconds = 100
            };

            var logger       = new LoggerFactory().CreateLogger <Runner>();
            var threadResult = new ThreadResult();
            var worker       = new Runner(service, threadResult, logger);
            var messageA     = new HttpRequestMessage(HttpMethod.Get, "/a");
            var messageB     = new HttpRequestMessage(HttpMethod.Get, "/b");
            var resetEvent   = new ManualResetEventSlim(false);

            var cts1 = new CancellationTokenSource(100);
            var cancellationToken = cts1.Token;

            await worker.CountWork(new[] { messageA, messageB }, 1, resetEvent, cancellationToken);

            var results = threadResult.Results;

            Assert.Equal(1, results.Count);
        }
Beispiel #16
0
        private void TestWorker_DoWork(object sender, DoWorkEventArgs e)
        {
            while (!TestWorker.CancellationPending)
            {
                var start2 = new position_t {
                    X = Character.Api.Player.X, Y = Character.Api.Player.Y, Z = Character.Api.Player.Z
                };

                var mob = Character.Api.Entity.GetEntity(Character.Target.FindBestTarget());
                var end = new position_t {
                    X = mob.X, Z = mob.Z
                };
                var mobid = Character.Target.FindBestTarget();

                if (FFxiNAV.waypoints.Count > 0)
                {
                    foreach (var wp in FFxiNAV.waypoints)
                    {
                        dist = Character.Navi.DistanceTo(wp);
                        while (dist > 6 && !TestWorker.CancellationPending && mob.Distance > 6)
                        {
                            var start3 = new position_t {
                                X = Character.Api.Player.X, Z = Character.Api.Player.Z
                            };
                            dist = Character.Navi.DistanceTo(wp);
                            Character.Logger.AddDebugText(rtbDebug, string.Format(@"start x {0} target x {1} distance {2}", start3.X.ToString(), wp.X.ToString(), dist.ToString()));
                            Character.Navi.GoTo(wp.X, wp.Z);
                            Thread.Sleep(200);
                        }
                        if (mob.Distance < 5 && !TestWorker.CancellationPending)
                        {
                            Character.Navi.FaceHeading(end);
                            Character.Navi.Reset();
                            Character.Target.TargetNpc(mobid);
                            Thread.Sleep(100);
                            Character.Api.ThirdParty.SendString("/attack <t>");
                        }
                    }
                    if (mob.Distance > 2.5 && FFxiNAV.waypoints.Count > 0 && !TestWorker.CancellationPending)
                    {
                        var end1 = new position_t {
                            X = mob.X, Z = mob.Z
                        };
                        var mobid1 = Character.Target.FindBestTarget();
                        Character.Navi.FaceHeading(end1);
                        Character.Navi.MoveForwardTowardsPosition(end1, true);

                        Character.Navi.FaceHeading(end1);
                        Character.Navi.Reset();
                        Character.Target.TargetNpc(mobid1);
                        Thread.Sleep(100);
                        Character.Api.ThirdParty.SendString("/attack <t>");
                    }
                    if (mob.Distance < 3)
                    {
                        FFxiNAV.waypoints.Clear();
                        Character.Navi.Reset();
                        mob = null;
                        TestWorker.CancelAsync();
                        Character.Navi.Reset();
                    }
                }

                Thread.Sleep(200);
            }
        }
 public void TestThrowExceptionInDoWork()
 {
     var bw = new TestWorker();
     bw.DoWork += DoWorkWithException;
     bw.RunWorkerAsync("Exception");
 }
        public async Task <bool> SetProperties(ObjectId testId, Dictionary <string, object> properties)
        {
            await _redisCache.Del($"Test:{testId}");

            return(await TestWorker.SetProperties(testId, properties));
        }
        public async Task <bool> SetProperty(ObjectId testId, string propertyName, object newPropertyValue)
        {
            await _redisCache.Del($"Test:{testId}");

            return(await TestWorker.SetProperty(testId, propertyName, newPropertyValue));
        }
        public async Task ReplaceTest(TestsDB_TestDTO updatedTest)
        {
            await TestWorker.Replace(updatedTest);

            await _redisCache.Del($"Test:{updatedTest.Id}");
        }
 public async Task <ObjectId> InsertTest(TestsDB_TestDTO newTest) =>
 await TestWorker.InsertTest(newTest);
 public async Task <TestsDB_TestDTO[]> GetTestsByRoomId(ObjectId roomId) =>
 await TestWorker.GetTestsByRoomId(roomId);
 public async Task <TestsDB_TestDTO> GetTestById(ObjectId testId) =>
 //await _redisCache.Get($"Test:{testId}", async () => await TestWorker.GetTestById(testId));
 await TestWorker.GetTestById(testId);