Пример #1
0
        /// <summary>
        /// Called when [task completed].
        /// </summary>
        /// <param name="startTime">The start time.</param>
        /// <param name="endTime">The end time.</param>
        /// <param name="status">The status.</param>
        private void OnTaskCompleted(DateTime startTime, DateTime endTime, TaskCompletionStatus status, Exception ex)
        {
            var elapsedTime = endTime - startTime;

            Logger.Info("{0} {1} after {2} minute(s) and {3} seconds", Name, status, Math.Truncate(elapsedTime.TotalMinutes), elapsedTime.Seconds);

            var result = new TaskResult
            {
                StartTimeUtc = startTime,
                EndTimeUtc   = endTime,
                Status       = status,
                Name         = Name,
                Id           = Id
            };

            result.Key = ScheduledTask.Key;

            if (ex != null)
            {
                result.ErrorMessage     = ex.Message;
                result.LongErrorMessage = ex.StackTrace;
            }

            LastExecutionResult = result;

            ((TaskManager)TaskManager).OnTaskCompleted(this, result);
        }
Пример #2
0
        /// <summary>
        /// Called when [task completed].
        /// </summary>
        /// <param name="startTime">The start time.</param>
        /// <param name="endTime">The end time.</param>
        /// <param name="status">The status.</param>
        private void OnTaskCompleted(DateTime startTime, DateTime endTime, TaskCompletionStatus status, Exception ex)
        {
            var elapsedTime = endTime - startTime;

            Logger.Info("{0} {1} after {2} minute(s) and {3} seconds", Name, status, Math.Truncate(elapsedTime.TotalMinutes), elapsedTime.Seconds);

            var result = new TaskResult
            {
                StartTimeUtc = startTime,
                EndTimeUtc   = endTime,
                Status       = status,
                Name         = Name,
                Id           = Id
            };

            if (ex != null)
            {
                result.ErrorMessage = ex.Message;
            }

            var path = GetHistoryFilePath();

            Directory.CreateDirectory(Path.GetDirectoryName(path));

            JsonSerializer.SerializeToFile(result, path);

            LastExecutionResult = result;

            ((TaskManager)TaskManager).OnTaskCompleted(this, result);
        }
Пример #3
0
        internal void OnTaskResult(TaskResult response)
        {
            response.TaskManagement = _cacheMgmt;
            _response = response;

            if (response.TaskStatus == TaskCompletionStatus.Success)
            {
                response.GetEnumerator();
            }

            _taskResult = _response;
            lock (mutex)
            {
                try
                {
                    taskStatus = response.TaskStatus;

                    callbackReceived = true;
                    Monitor.Pulse(mutex);
                }
                catch (Exception ex)
                {
                    throw new Exception(ex.StackTrace);
                }
            }

            if (OnMapReduceComplete != null)
            {
                OnMapReduceComplete.Invoke(response);
            }
        }
Пример #4
0
 private void RequestTimedOut(object sender, TaskCompletionStatus status)
 {
     if (sender is RemoteRequest request)
     {
         _responseList.TryRemove(request.MessageId, out request);
     }
 }
Пример #5
0
 public TaskResult(TaskCompletionStatus status, string taskId, short uniqueId, string reason)
 {
     this.tStatus       = status;
     this.taskId        = taskId;
     this.uniqueId      = uniqueId;
     this.failureReason = reason;
 }
Пример #6
0
        internal void FireMapReduceCallback(string taskId, int taskstatus, string taskFailureReason, short callbackId)
        {
            TaskCompletionStatus status = TaskCompletionStatus.Success;

            switch (taskstatus)
            {
            case 0:
                status = TaskCompletionStatus.Success;
                break;

            case 1:
                status = TaskCompletionStatus.Failure;
                break;

            case 2:
                status = TaskCompletionStatus.Cancelled;
                break;
            }

            TaskResult resp = new TaskResult(status, taskId, callbackId, taskFailureReason);

            if (_mapReduceListenerIDPool != null)
            {
                ResourcePool poole    = _mapReduceListenerIDPool;
                TaskListener callback = (TaskListener)poole.GetResource(callbackId);

                if (callback != null)
                {
                    callback.Invoke(resp);
                }
            }
        }
Пример #7
0
        public async Task QueueBackgroundWorkItem_()
        {
            var backgroundTaskQueue     = new BackgroundTaskQueue <string>(null);
            var queueBackgroundWorkItem = backgroundTaskQueue.QueueBackgroundWorkItem("test");
            var dequeueAsync            = await backgroundTaskQueue.DequeueAsync(CancellationToken.None);

            dequeueAsync !.TaskCompletionStatus.SetResult(ProcessedMessageStatus.Success);

            var processedMessageStatus = await queueBackgroundWorkItem;

            Assert.Equal(TaskStatus.RanToCompletion, queueBackgroundWorkItem.Status);
            Assert.Equal(ProcessedMessageStatus.Success, processedMessageStatus);
        }
        /// <summary>
        /// Called when [task completed].
        /// </summary>
        /// <param name="startTime">The start time.</param>
        /// <param name="endTime">The end time.</param>
        /// <param name="status">The status.</param>
        private void OnTaskCompleted(DateTime startTime, DateTime endTime, TaskCompletionStatus status)
        {
            var elapsedTime = endTime - startTime;

            Logger.Info("{0} {1} after {2} minute(s) and {3} seconds", Name, status, Math.Truncate(elapsedTime.TotalMinutes), elapsedTime.Seconds);

            var result = new TaskResult
            {
                StartTimeUtc = startTime,
                EndTimeUtc   = endTime,
                Status       = status,
                Name         = Name,
                Id           = Id
            };

            JsonSerializer.SerializeToFile(result, GetHistoryFilePath());

            LastExecutionResult = result;

            ((TaskManager)TaskManager).OnTaskCompleted(ScheduledTask, result);
        }
Пример #9
0
        /// <summary>
        /// Called when [task completed].
        /// </summary>
        /// <param name="startTime">The start time.</param>
        /// <param name="endTime">The end time.</param>
        /// <param name="status">The status.</param>
        private void OnTaskCompleted(DateTime startTime, DateTime endTime, TaskCompletionStatus status, Exception ex)
        {
            var elapsedTime = endTime - startTime;

            Logger.Info("{0} {1} after {2} minute(s) and {3} seconds", Name, status, Math.Truncate(elapsedTime.TotalMinutes), elapsedTime.Seconds);

            var result = new TaskResult
            {
                StartTimeUtc = startTime,
                EndTimeUtc = endTime,
                Status = status,
                Name = Name,
                Id = Id
            };

            var hasKey = ScheduledTask as IHasKey;
            if (hasKey != null)
            {
                result.Key = hasKey.Key;
            }

            if (ex != null)
            {
                result.ErrorMessage = ex.Message;
                result.LongErrorMessage = ex.StackTrace;
            }

            LastExecutionResult = result;

            ((TaskManager)TaskManager).OnTaskCompleted(this, result);
        }
Пример #10
0
        /// <summary>
        /// Called when [task completed].
        /// </summary>
        /// <param name="startTime">The start time.</param>
        /// <param name="endTime">The end time.</param>
        /// <param name="status">The status.</param>
        private void OnTaskCompleted(DateTime startTime, DateTime endTime, TaskCompletionStatus status, Exception ex)
        {
            var elapsedTime = endTime - startTime;

            Logger.Info("{0} {1} after {2} minute(s) and {3} seconds", Name, status, Math.Truncate(elapsedTime.TotalMinutes), elapsedTime.Seconds);

            var result = new TaskResult
            {
                StartTimeUtc = startTime,
                EndTimeUtc = endTime,
                Status = status,
                Name = Name,
                Id = Id
            };

            if (ex != null)
            {
                result.ErrorMessage = ex.Message;
            }

            var path = GetHistoryFilePath();
            Directory.CreateDirectory(Path.GetDirectoryName(path));

            JsonSerializer.SerializeToFile(result, path);

            LastExecutionResult = result;

            ((TaskManager) TaskManager).OnTaskCompleted(ScheduledTask, result);
        }
Пример #11
0
        /// <summary>
        /// Called when [task completed].
        /// </summary>
        /// <param name="startTime">The start time.</param>
        /// <param name="endTime">The end time.</param>
        /// <param name="status">The status.</param>
        private void OnTaskCompleted(DateTime startTime, DateTime endTime, TaskCompletionStatus status)
        {
            var elapsedTime = endTime - startTime;

            Logger.Info("{0} {1} after {2} minute(s) and {3} seconds", Name, status, Math.Truncate(elapsedTime.TotalMinutes), elapsedTime.Seconds);

            var result = new TaskResult
            {
                StartTimeUtc = startTime,
                EndTimeUtc = endTime,
                Status = status,
                Name = Name,
                Id = Id
            };

            JsonSerializer.SerializeToFile(result, GetHistoryFilePath(true));

            LastExecutionResult = result;

            ((TaskManager) TaskManager).OnTaskCompleted(ScheduledTask, result);
        }
Пример #12
0
 protected virtual void DoTimedOut(object sender, TaskCompletionStatus status)
 {
     _onTimeout?.Invoke(this, status);
 }