Преглед на файлове

feat(app_factory): speed up api startup (#11762)

Signed-off-by: -LAN- <laipz8200@outlook.com>
tags/0.14.1
-LAN- преди 10 месеца
родител
ревизия
e86756cb39
No account linked to committer's email address
променени са 2 файла, в които са добавени 33 реда и са изтрити 5 реда
  1. 22
    5
      api/app.py
  2. 11
    0
      api/app_factory.py

+ 22
- 5
api/app.py Целия файл

@@ -1,13 +1,30 @@
from app_factory import create_app
from libs import threadings_utils, version_utils
from libs import version_utils

# preparation before creating app
version_utils.check_supported_python_version()
threadings_utils.apply_gevent_threading_patch()


def is_db_command():
import sys

if len(sys.argv) > 1 and sys.argv[0].endswith("flask") and sys.argv[1] == "db":
return True
return False


# create app
app = create_app()
celery = app.extensions["celery"]
if is_db_command():
from app_factory import create_migrations_app

app = create_migrations_app()
else:
from app_factory import create_app
from libs import threadings_utils

threadings_utils.apply_gevent_threading_patch()

app = create_app()
celery = app.extensions["celery"]

if __name__ == "__main__":
app.run(host="0.0.0.0", port=5001)

+ 11
- 0
api/app_factory.py Целия файл

@@ -98,3 +98,14 @@ def initialize_extensions(app: DifyApp):
end_time = time.perf_counter()
if dify_config.DEBUG:
logging.info(f"Loaded {short_name} ({round((end_time - start_time) * 1000, 2)} ms)")


def create_migrations_app():
app = create_flask_app_with_configs()
from extensions import ext_database, ext_migrate

# Initialize only required extensions
ext_database.init_app(app)
ext_migrate.init_app(app)

return app

Loading…
Отказ
Запис