Spaces:
Build error
Build error
import os | |
from configs import dify_config | |
if os.environ.get("DEBUG", "false").lower() != "true": | |
from gevent import monkey | |
monkey.patch_all() | |
import grpc.experimental.gevent | |
grpc.experimental.gevent.init_gevent() | |
import json | |
import threading | |
import time | |
import warnings | |
from flask import Response | |
from app_factory import create_app | |
# DO NOT REMOVE BELOW | |
from events import event_handlers # noqa: F401 | |
from extensions.ext_database import db | |
# TODO: Find a way to avoid importing models here | |
from models import account, dataset, model, source, task, tool, tools, web # noqa: F401 | |
# DO NOT REMOVE ABOVE | |
warnings.simplefilter("ignore", ResourceWarning) | |
os.environ["TZ"] = "UTC" | |
# windows platform not support tzset | |
if hasattr(time, "tzset"): | |
time.tzset() | |
# create app | |
app = create_app() | |
celery = app.extensions["celery"] | |
if dify_config.TESTING: | |
print("App is running in TESTING mode") | |
def after_request(response): | |
"""Add Version headers to the response.""" | |
response.set_cookie("remember_token", "", expires=0) | |
response.headers.add("X-Version", dify_config.CURRENT_VERSION) | |
response.headers.add("X-Env", dify_config.DEPLOY_ENV) | |
return response | |
def health(): | |
return Response( | |
json.dumps({"pid": os.getpid(), "status": "ok", "version": dify_config.CURRENT_VERSION}), | |
status=200, | |
content_type="application/json", | |
) | |
def threads(): | |
num_threads = threading.active_count() | |
threads = threading.enumerate() | |
thread_list = [] | |
for thread in threads: | |
thread_name = thread.name | |
thread_id = thread.ident | |
is_alive = thread.is_alive() | |
thread_list.append( | |
{ | |
"name": thread_name, | |
"id": thread_id, | |
"is_alive": is_alive, | |
} | |
) | |
return { | |
"pid": os.getpid(), | |
"thread_num": num_threads, | |
"threads": thread_list, | |
} | |
def pool_stat(): | |
engine = db.engine | |
return { | |
"pid": os.getpid(), | |
"pool_size": engine.pool.size(), | |
"checked_in_connections": engine.pool.checkedin(), | |
"checked_out_connections": engine.pool.checkedout(), | |
"overflow_connections": engine.pool.overflow(), | |
"connection_timeout": engine.pool.timeout(), | |
"recycle_time": db.engine.pool._recycle, | |
} | |
if __name__ == "__main__": | |
app.run(host="0.0.0.0", port=5001) | |