如何从 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();
}
}
}

我只是还没有找到任何关于如何做到这一点的解决方案。

因此,这是您可以如何处理它,或者下面的链接将为您提供有关如何选择处理的好主意。

在这里尝试一下示例代码: 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

伪代码步骤:

  • 捕获失败的任务。
  • 获取非零退出代码,如果您认为可以通过编程方式对其进行处理,请调用foo_funct_correct然后重试。
  • 此处提到的任务失败事件:https://learn.microsoft.com/en-us/azure/batch/batch-task-fail-event
  • Azure 批处理服务任务退出代码错误

  • 任务退出代码:https://learn.microsoft.com/en-us/azure/batch/error-handling#task-exit-codes

额外的东西

  • 如何对失败的任务重新排队:Azure 批处理重新排队失败的任务

希望这有帮助!谢谢=(

最新更新