2017-05-19 11 views
0

我遇到了Azure批量作业问题。我试图创建一个应用程序池,创建一个CloudTask,然后执行我的应用程序包在线。Azure批量作业问题,以未知错误代码结尾

你看到东西不能正常工作吗?

这是现在使用的代码。主要代码:

 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

要诊断任务的故障,您需要首先查看是否设置了CloudTask ExecutionInformation.FailureInformation(如果SDK 7.0.0+或ExecutionInformation.SchedulingError,如果之前的SDK版本)。检查这些字段的任何信息。

为特定的任务,它看起来像它可以添加任务级应用程序包的参考,当你已经做了这涉及到你在池级。尝试省略task.ApplicationPackageReferences

了解有关池级和任务级应用程序包和一个会适合您的情况最好的之间的区别的更多信息请咨询Application Package Documentation