В настоящее время у меня есть приложение Flask за сервером Gunicorn, для одной основной конечной точки объект подключения извлекает данные из сторонней службы и создается во время запуска приложения. Если я правильно понимаю Gunicorn, то этот объект будет запущен только один раз при запуске, а затем тот же самый форк будет использовать тот же объект для последующих запросов. Если я перезагружаю приложение, оно работает нормально, поэтому я сузил его до объекта подключения, который не восстанавливает соединение сам по себе при каждом запросе.
Я попытался просто повторно создать экземпляр объекта по неудавшемуся запросу, надеясь, что он будет исправить объект для последующих запросов, но теперь я понимаю, что в предварительной форковской модели Gunicorn это не сработает. Есть ли какой-нибудь способ, которым я могу выполнить или изменить хук в исходном процессе, который разветвляется каждый раз, когда требуется создать работника?
init .py
app = Flask(__name__)
connection = Connect(service)
файл конечной точки
import app, connection
## In the endpoint logic
try:
# Try to make external request
except ConnectionError as e:
# Hope to somehow re-instantiate that object for future requests
connection = Connect(service)