async function createETLJobPartition()

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;
    }
  }
}