我希望在 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 批处理重新排队失败的任务
希望这有帮助!谢谢=(