public void Start() { var request = new BlockExecutionChangeStatusRequest(new TaskId(_applicationName, _taskName), _taskExecutionId, _block.RangeType, BlockExecutionId, BlockExecutionStatus.Started); Action<BlockExecutionChangeStatusRequest> actionRequest = _rangeBlockRepository.ChangeStatus; RetryService.InvokeWithRetry(actionRequest, request); }
public void ChangeStatus(BlockExecutionChangeStatusRequest changeStatusRequest) { switch (changeStatusRequest.BlockType) { case BlockType.DateRange: ChangeStatusOfDateRangeExecution(changeStatusRequest); break; case BlockType.NumericRange: ChangeStatusOfNumericRangeExecution(changeStatusRequest); break; default: throw new NotSupportedException("This range type is not supported"); } }
public void If_SetStatusOfObjectBlock_ThenItemsCountIsCorrect() { // ARRANGE InsertObjectBlock(); var request = new BlockExecutionChangeStatusRequest(new TaskId(TestConstants.ApplicationName, TestConstants.TaskName), _taskExecution1, BlockType.Object, _blockExecutionId.ToString(), BlockExecutionStatus.Completed); request.ItemsProcessed = 10000; // ACT var sut = CreateSut(); sut.ChangeStatus(request); var itemCount = new BlocksHelper().GetBlockExecutionItemCount(_blockExecutionId); // ASSERT Assert.AreEqual(itemCount, 10000); }
public void ChangeStatus(BlockExecutionChangeStatusRequest changeStatusRequest) { try { using (var connection = CreateNewConnection(changeStatusRequest.TaskId)) { var command = connection.CreateCommand(); command.CommandTimeout = ConnectionStore.Instance.GetConnection(changeStatusRequest.TaskId).QueryTimeoutSeconds; command.CommandText = GetListUpdateQuery(changeStatusRequest.BlockExecutionStatus); command.Parameters.Add("@BlockExecutionId", SqlDbType.BigInt).Value = long.Parse(changeStatusRequest.BlockExecutionId); command.Parameters.Add("@BlockExecutionStatus", SqlDbType.TinyInt).Value = (byte)changeStatusRequest.BlockExecutionStatus; command.ExecuteNonQuery(); } } catch (SqlException sqlEx) { if (TransientErrorDetector.IsTransient(sqlEx)) throw new TransientException("A transient exception has occurred", sqlEx); throw; } }
public void Complete(int itemsProcessed) { var request = new BlockExecutionChangeStatusRequest(new TaskId(_applicationName, _taskName), _taskExecutionId, _block.RangeType, BlockExecutionId, BlockExecutionStatus.Completed); request.ItemsProcessed = itemsProcessed; Action<BlockExecutionChangeStatusRequest> actionRequest = _rangeBlockRepository.ChangeStatus; RetryService.InvokeWithRetry(actionRequest, request); }