def main():
    parser = argparse.ArgumentParser(
        description='Run the queue client',
    )

    # Parse args
    args = parser.parse_args()

    logger.info("Starting queue client...")

    # Create and run supervisor
    supervisor = Supervisor()
    supervisor.run()

    try:
        # Run until keyboard exit
        while True:
            # Display supervisor status
            supervisor.status()
            sleep(config.QUEUE_MONITOR_INTERVAL)
    except KeyboardInterrupt:
        # Call stop on all workers
        supervisor.stop()

    logger.info("Exiting...")

    # Kill the queue
    sys.exit(0)