我遇到Azure批处理作业问题。我正在尝试创建一个应用程序池,创建一个CloudTask,然后执行我的应用程序包在线。
你看到一些不正常的东西吗?
这是现在使用的代码。主要代码:
await CreatePoolAsync(batchClient, currentPoolId, applicationFiles);
await CreateJobAsync(batchClient, currentJobId, currentPoolId);
await AddTasksAsync(batchClient, currentJobId, inputFiles, optimizationId, outputContainerSasUrl);
创建池:
CloudPool pool = batchClient.PoolOperations.CreatePool(
poolId: poolId,
targetDedicated: 1, // 3 compute nodes
virtualMachineSize: "small", // single-core, 1.75 GB memory, 225 GB disk
cloudServiceConfiguration: new CloudServiceConfiguration(osFamily: "4")); // Windows Server 2012 R2
pool.ApplicationPackageReferences = new List<ApplicationPackageReference>
{
new ApplicationPackageReference
{
ApplicationId = "my_app"
}
};
创建工作:
CloudJob job = batchClient.JobOperations.CreateJob();
job.Id = jobId;
job.PoolInformation = new PoolInformation {PoolId = poolId};
await job.CommitAsync();
添加任务。
string taskId = "myAppEngineTask";
string taskCommandLine = $"cmd /c %AZ_BATCH_APP_PACKAGE_MY_APP%\\MyApp.Console.exe -a NSGA2 -r 1000 -m db -i {optimizationId}";
CloudTask task = new CloudTask(taskId, taskCommandLine);
task.ApplicationPackageReferences = new List<ApplicationPackageReference>
{
new ApplicationPackageReference
{
ApplicationId = "my_app"
}
};
await batchClient.JobOperations.AddTaskAsync(jobId, tasks);
完成添加任务后,一切似乎都已启动并运行,但我收到错误代码:-2146232576并且没有任何内容打印到任何日志。
答案 0 :(得分:0)
要诊断任务失败,您需要先查看是否设置了CloudTask ExecutionInformation.FailureInformation
(如果SDK 7.0.0+或ExecutionInformation.SchedulingError
,如果之前的SDK版本)。检查这些字段是否有任何信息。
对于您的特定任务,看起来它可能与您在池级别完成该任务级别的应用程序包引用时相关。请尝试省略task.ApplicationPackageReferences
。
有关池级和任务级应用程序包之间差异的更多信息,请参阅Application Package Documentation,以及哪种方案最适合您的方案。