From c9aff0691bf4e9e80d30cc6b4a219ba58beeb548 Mon Sep 17 00:00:00 2001 From: Pierre Jaury Date: Sun, 6 Nov 2016 17:00:10 +0100 Subject: [PATCH] Add a scheduler to the Flask application --- admin/mailu/__init__.py | 8 ++++++++ admin/requirements.txt | 1 + admin/run.py | 6 ++++-- 3 files changed, 13 insertions(+), 2 deletions(-) diff --git a/admin/mailu/__init__.py b/admin/mailu/__init__.py index a2a84ed1..17c4e38f 100644 --- a/admin/mailu/__init__.py +++ b/admin/mailu/__init__.py @@ -9,6 +9,8 @@ import flask_babel import os import docker +from apscheduler.schedulers import background + # Create application app = flask.Flask(__name__, static_url_path='/admin/app_static') @@ -41,6 +43,7 @@ login_manager = flask_login.LoginManager() login_manager.init_app(app) babel = flask_babel.Babel(app) translations = list(map(str, babel.list_translations())) +scheduler = background.BackgroundScheduler() # Manager commnad manager = flask_script.Manager(app) @@ -49,6 +52,10 @@ manager.add_command('db', flask_migrate.MigrateCommand) # Connect to the Docker socket dockercli = docker.Client(base_url=app.config['DOCKER_SOCKET']) +# Task scheduling +if not app.debug or os.environ.get('WERKZEUG_RUN_MAIN') == 'true': + scheduler.start() + # Babel configuration @babel.localeselector def get_locale(): @@ -60,4 +67,5 @@ app.register_blueprint(admin.app, url_prefix='/admin') @app.route("/") def index(): + return 1/0 return flask.redirect(flask.url_for("admin.index")) diff --git a/admin/requirements.txt b/admin/requirements.txt index 1437717c..edcd1fdd 100644 --- a/admin/requirements.txt +++ b/admin/requirements.txt @@ -12,3 +12,4 @@ passlib gunicorn docker-py tabulate +apscheduler diff --git a/admin/run.py b/admin/run.py index 951ef5d2..74f32e57 100644 --- a/admin/run.py +++ b/admin/run.py @@ -1,5 +1,7 @@ -from mailu import app +import os if __name__ == "__main__": - app.run(debug=True) + os.environ["DEBUG"] = "true" + from mailu import app + app.run()