Я хочу реализовать функцию (update_cert () в приведенном ниже коде), которая будет извлекать данные от третьей стороны (публичный сертификат) и записывать их в файл или БД.Эти данные предназначены для использования моим приложением-флягой (для проверки подписи маркеров доступа).
Я хочу запустить эту функцию в качестве фонового процесса, который выполняется в одном потоке в течение всего срока службы приложения.
Я пытался реализовать эту функцию в планировщике в моем app.py.Но uWSGI будет вызывать его несколько раз во время инициализации каждого работника.Я боюсь, что это оставит мое приложение небезопасным.
Что было бы правильным способом реализации этой концепции.Ниже мой app.py.
import os
from flask import Flask
from flask_restful import Api
from resources.user import UserRegister
from resources.matchingJob import MatchingJob
from resources.client import Client
from models.configs import ConfigModel
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = os.environ.get('DATABASE_URL')
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
api = Api(app)
api.add_resource(UserRegister, '/register')
api.add_resource(MatchingJob, '/job', '/job/<string:matching_uuid>')
api.add_resource(Client, '/client', '/client/<string:matching_uuid>')
@app.before_first_request
def update_cert():
url_to_get_cert = <url>
trust_path = '/etc/pki/tls/certs/ca-bundle.crt'
cert = requests.get(url_to_get_cert, verify=trust_path).text
cls.update('CERT', cert)