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