Доступ к контексту приложения фляги (конфигурации) из внешнего обратного вызова - PullRequest
0 голосов
/ 03 апреля 2019

У меня есть некоторый код, который устанавливает обратный вызов через IoTHub Device SDK в initialize_callback, после чего он получает доступ к конфигурации приложения.Однако, когда вызывается device_twin_callback, я получаю сообщение об ошибке (RuntimeError: Working outside of application context.) в строке app.app_context() или при доступе к app.config, когда я не нажимаю app_context().

Я не уверен, имеет ли это отношение к настройке обратного вызова (MQTT), или я что-то упускаю.

Единственное, что может сработать, - это импортировать файл конфигурации напрямую, но это выглядит как анти-шаблон для уже хорошо определенного приложения Flask app.config

from flask import current_app as app
from iothub_client import IoTHubClient
class Session():
    def __init__(self, device_connection_string):
        self.client = IoTHubClient(device_connection_string, IoTHubTransportProvider.MQTT)

    def device_twin_callback(self, update_state, payload, user_context):
        with app.app_context():
            print(app.config)

    def initialize_callback(self):
        print(app.config)
        self.client.set_device_twin_callback(self.device_twin_callback, 0)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...