in lambda-functions/add-partition-function/index.js [110:141]
async function createETLJobPartition() {
let {
QueryExecutionId
} = await runQuery({
QueryString: `MSCK REPAIR TABLE ${ETL_PLAYER_LOGS_TABLE}`,
});
for (let attempt = 0; attempt < 10; attempt++) {
let result = await getQueryExecution(QueryExecutionId);
let state = result.QueryExecution.Status.State;
console.log("CDNLogs.Execution status ",state);
switch (state) {
case 'RUNNING':
case 'QUEUED':
console.log(
'query is queued or running, retrying in ',
Math.pow(2, attempt + 1) * 100,
'ms',
);
await delay(Math.pow(2, attempt + 1) * 100);
break;
case 'SUCCEEDED':
return true;
case 'FAILED':
console.log('query failed');
throw new Error(result.QueryExecution.Status.StateChangeReason);
case 'CANCELLED':
console.log('query is cancelled');
return;
}
}
}