def run_concurrency_test()

in use-cases/ec2-redshift-access/scripts/redshift-concurrency-test.py [0:0]


def run_concurrency_test(number_of_parallel_sessions):
    engine=connect_to_redshift(REDSHIFT_CLUSTER_ENDPOINT,REDSHIFT_USER_NAME)
    script = get_concurrency_scripts_from_s3(REDSHIFT_CLUSTER_ENDPOINT.split('.')[0], number_of_parallel_sessions)
    start_time = time.time()
    try:
        with ThreadPoolExecutor(max_workers=number_of_parallel_sessions) as executor:
            futures = []
            for sequence_number in range(number_of_parallel_sessions):
                futures.append(executor.submit(
                    get_sql, engine, script, sequence_number))
            for future in as_completed(futures):
                rs = future.result()

    except Exception as e:
        raise e
    elapsed_time_in_secs = (time.time() - start_time)
    print("--- %s seconds ---" % elapsed_time_in_secs)
    return elapsed_time_in_secs