예제 #1
0
 public LocalTaskQueueingResult TryQueueTask([NotNull] TaskIndexRecord taskIndexRecord, [CanBeNull] TaskMetaInformation taskMeta, TaskQueueReason taskQueueReason, bool taskIsBeingTraced)
 {
     using (var infrastructureTraceContext = new InfrastructureTaskTraceContext(taskIsBeingTraced))
     {
         var result = DoTryQueueTask(taskIndexRecord, taskMeta, taskQueueReason, taskIsBeingTraced);
         infrastructureTraceContext.Finish(result.TaskIsSentToThreadPool);
         return(result);
     }
 }
예제 #2
0
 public void TaskFinished([NotNull] string taskId, TaskQueueReason taskQueueReason, bool taskIsBeingTraced, LocalTaskProcessingResult result)
 {
     lock (lockObject)
         hashtable.Remove(taskId);
     localQueueTaskCounter.Decrement(taskQueueReason);
     metricsContext.Meter("TaskIsFinished").Mark();
     if (taskIsBeingTraced)
     {
         InfrastructureTaskTraceContext.Finish();
         RemoteTaskHandlingTraceContext.Finish(result, rtqInternals.GlobalTime.UpdateNowTimestamp().Ticks);
     }
 }