Exemple #1
0
def create_app():
    """Initialize app with configs."""
    app = Flask(__name__.split('.')[0])

    load_configs(app)
    initialize_logger(app)
    configure_scheduler_mode(app)
    db.init_app(app)

    with app.app_context():
        register_routes(app)

        # See https://stackoverflow.com/questions/9449101/how-to-stop-flask-from-initialising-twice-in-debug-mode
        if not app.debug or os.environ.get('WERKZEUG_RUN_MAIN') == 'true':
            initialize_job_schedules(app)
            initialize_job_queue(app)
            run_startup_jobs(app)

    return app
def scheduler(app):
    """Re-initialize job scheduler from configs on teardown so that changes don't persist."""
    yield
    from nessie.jobs.scheduling import initialize_job_schedules
    initialize_job_schedules(app, force=True)