Как я могу вернуть ошибку из задачи в пакете заданий Azure, чтобы задачу можно было повторно активировать?

Я хочу, чтобы при выполнении задания в пакетной службе Azure в случае ошибки можно было исправить данные, а затем с портала просто повторно активировать задачу. Задания расписаны.

В настоящее время я просто выбрасываю исключения в случае сбоя. Эти задачи нельзя повторно активировать.

Но, глядя на другие задачи, я вижу это «Задание не выполнено». Задание завершено с кодом выхода, представляющим собой сбой». Для этой задачи я могу нажать кнопку «Повторно активировать». Как я могу сделать то же самое?

Это мой текущий код:

public class Program
    {
        private static void Main(string[] args)
        {
            try
            {
                ConsoleLogger.Info($"Job.DataTransfer process started! ");

                DataTransferSettings dataTransferSettings = DataTransferSettingsReader.GetDataTransferSettings();
                if (dataTransferSettings != null)
                {
                    ServicePointManager.DefaultConnectionLimit = int.MaxValue;

                    CopyData(dataTransferSettings);
                }
                else
                {
                    throw new Exception($"Process stopped, check data transfer settings.");
                }

                ConsoleLogger.Info($"Job.DataTransfer process completed.");
            }
            catch (Exception ex)
            {
                ConsoleLogger.Error(GetExceptionMessage(ex), ex);

                ExceptionDispatchInfo.Capture(ex).Throw();
            }
        }
}

Я просто еще не нашел решения о том, как это сделать.


person Alexa Adrian    schedule 09.06.2020    source источник
comment
2 цента за идею: То есть это провал задачи? т. е. если taskFailure виден с ненулевым кодом выхода, то это правильное поведение, вы можете получить код выхода и исправить задачу. Можете ли вы подробно описать, что в конце пакета на самом деле терпит неудачу, пожалуйста?   -  person Tats_innit    schedule 10.06.2020


Ответы (1)


Итак, вот как вы можете справиться с этим, или ссылки ниже дадут вам хорошие идеи, как вы можете справиться.

Поэкспериментируйте с примером кода здесь: примеры c# находятся здесь: https://github.com/Azure-Samples/azure-batch-samples/tree/master/CSharp/GettingStarted Здесь вы увидите кое-что о том, как справиться с неудачной задачей: https://github.com/Azure-Samples/azure-batch-samples/blob/master/CSharp/GettingStarted/02_PoolsAndResourceFiles/JobSubmitter/JobSubmitter.cs

Шаги псевдокода:

Дополнительные материалы

Надеюсь это поможет! Спасибо =)

person Tats_innit    schedule 10.06.2020