I'm using Flask/Gunicorn to run a web application and have a question about the lifecycle management. I have more experience in the Java world with servlets.
I'm creating a restful interface to a service. The service is always running on the server and communicates and controls with a set of sub-servers. In Java, my service would be created and initialized (e.g. the setup traditionally found in main()
) through listeners and servlet initialization methods.
Where would the equivalent setup and configuration be in Flask? I'm thinking of tasks like creating a database connection pool, sending hello messages to the sub-servers, resetting the persisted system state to initial values, etc.
Would that go in the before_first_request
method of Flask?
Based on @Pyrce's comments I think I could create a main.py
:
app = Flask(your_app_name)
#initialization code goes here
and then run with:
>gunicorn main:app
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…