Azureバッチに多数のタスクを送信しようとしています。 3つのジョブがあり、それらのジョブには合計67,000のタスクが分散しています。ノードSDKを使用したAzureバッチジョブへのタスクの送信
私がいくつかのタスクを送信すると、すべてが完全に機能します。完全なリストを送信するとすぐに、それは転倒するようですが、有用なエラーメッセージは表示されません。合計に何らかの制限がありますか?または私がそれらを送ることができる率?私はAzure関数、ノードSDKを使用しており、タスクを非同期で追加することを約束しています。
async.each(tasks, function(task, callback) {
var taskID = task.id + '_process';
var config = {
id: taskID,
displayName: 'Render portion ' + task.id + ' in job ' + task.job.id,
commandLine: "python3 main.py '" + JSON.stringify(task) + "'"
};
batchClient.task.add(task.job.id, config).then(function(result) {
context.log('Task for portion : ' + task.id + ' submitted successfully');
callback();
}).catch(function(error){
context.log('Task failed to be added');
callbacK(error);
});
}, function(error) {
if(error) {
context.log('Error adding task.');
context.res = { body: error };
context.done();
} else {
context.log('All tasks have been queued successfully');
context.res = { body: 'All tasks have been queued successfully' };
context.done();
}
});
この時点では、私には何かを与えてくれるだけで、エラーが発生することに興奮しています。私は10のタスクを送信しようとしましたが、正常に動作し、65,000を送信し、それは黙って失敗します。
Hiya Mark、Iこれをさらに理解するためには、いくつかのことを考えることが重要です。仕事の負荷はどのように見えますか? (遊びのプール数、デザインにはどのような戦略がありますか?)また、正確なユーザーエラーを軽く叩いてください。 ':)'ありがとう! –
ワークロードは、1つのプール上の3つのジョブにまたがる65,000のタスクです。プールには合計128個のNC6マシン〜780個のコアがあります。スクリプトの中にエラーメッセージが全く出ず、実行時間の30分後にタイムアウトするだけです。 – Mark