/// <summary>Thread delegate for replication.</summary> public void ThreadMain() { while (!Abort && Thread.CurrentThread.ThreadState == System.Threading.ThreadState.Running && !AppDomain.CurrentDomain.IsFinalizingForUnload()) { IQueued Item = null; while (Q.Count > 0 && (Item == null || Q.Count > 1)) { try { Item = (IQueued)System.Collections.Queue.Synchronized(Q).Dequeue(); Item.Run(); if (Item.Status == QueuedResult.Retry) { Item.Reset(); Enqueue(Item); } } //PC Security Defect Fix -CH1 START- Modified the below code to add logging inside the catch block catch (Exception ex) { Logger.Log(ex.ToString()); } } //PC Security Defect Fix -CH1 END- Modified the below code to add logging inside the catch block Thread.Sleep(SleepTime); if (Web.LogModule.Instances <= 0) { Abort = true; } } }
/// <summary> /// Process Message /// </summary> /// <param name="message">Message</param> /// <returns>Task</returns> protected virtual async Task Process(IQueued <T> message) { try { var data = await message.Data(); if (null != data) { var successful = await this.processor.Process(data); if (successful) { await message.Complete(); } else { await message.Abandon(); } } else { await message.Abandon(); } } catch { message.Abandon().Wait(); throw; } }
private static async Task ReportStatus( IResultFactory results, IPipeline <string> filePipeline, IPipeline <FileResult> metadataPipeline, IQueued transferPipe, CancellationToken token) { await Task.Run(() => { var start = DateTime.Now; Console.CursorVisible = false; while (!token.IsCancellationRequested) { var builder = new StringBuilder(); builder.AppendLine(string.Format("{0,-40}", $"Files Completed: {results.TotalFiles}")); builder.AppendLine(string.Format("{0,-40}", $"Errors: {results.TotalErrors}")); builder.AppendLine(string.Format("{0,-40}", $"Awaiting Analysis: {filePipeline.Buffer.Count}")); builder.AppendLine(string.Format("{0,-40}", $"Awaiting Transfer: {transferPipe.GetWaitingTasks()}")); builder.AppendLine(string.Format("{0,-40}", $"Time elapsed: {(DateTime.Now - start)}")); builder.AppendLine(string.Format("{0,-40}", $"Size of transfer: {results.TotalSize / 1024 / 1024}MBs")); Console.Write(builder.ToString()); Console.SetCursorPosition(0, Console.CursorTop - 6); Thread.Sleep(25); } Console.WriteLine("Complete."); }); }
public LogCollector(IQueued<LogItem> qThread, ILogWriter writer) { this.writer = writer; filterQue = new ConcurrentQueue<Action<HashSet<int>>>(); filter = new HashSet<int>(); this.qThread = qThread; qThread.SetTimeout(writer.GetTimeout()); qThread.OnReceive += Receive; qThread.OnTimeout += TimeOut; }
public LogCollector(IQueued <LogItem> qThread, ILogWriter writer) { this.writer = writer; filterQue = new ConcurrentQueue <Action <HashSet <int> > >(); filter = new HashSet <int>(); this.qThread = qThread; qThread.SetTimeout(writer.GetTimeout()); qThread.OnReceive += Receive; qThread.OnTimeout += TimeOut; }
void ActivationTestHelper(Tester <T> tester, IQueued <T> tested) { int retry = 30; while (!tested.Active && retry > 0) { retry--; Thread.Sleep(SleepDelay); } Assert.AreEqual(true, tested.Active); }
/// <summary>Places item onto the queue</summary> public static void Enqueue(IQueued Item) { if (Web.LogModule.Instances > 0) { if (Queues.Count == 0) { new Queue(); } ((Queue)Queues[0]).Enq(Item); } }
public Tester(IQueued <T1> tested) { tested.OnReceive += Received; tested.OnTimeout += TimeOut; }
/// <summary>Places item onto the queue</summary> private void Enq(IQueued Item) { System.Collections.Queue.Synchronized(Q).Enqueue(Item); }