Я пытаюсь настроить библиотеку python-telegram-bot
в режиме webhook с Django. Это должно работать следующим образом: при запуске Django я делаю начальную установку python-telegram-bot
и в результате получаю объект dispatcher
. Django слушает /telegram_hook
url и получает обновления от серверов Telegram. Далее я хочу передать обновления методу process_update
dispatcher
, созданному при запуске. Он содержит всю логику синтаксического анализа и вызывает обратные вызовы, указанные во время установки.
Проблема в том, что объект dispatcher
необходимо сохранить глобально. Я знаю, что глобальные состояния - это зло , но на самом деле это не глобальное состояние, потому что dispatcher
является неизменным. Тем не менее, я до сих пор не знаю, где его разместить и как обеспечить, чтобы он был виден всем потокам после завершения фазы установки. Поэтому вопрос заключается в том, как правильно сохранить dispatcher
после установки, чтобы вызвать его из viewset
?
Джанго.
P.S. Я знаю, что я мог бы использовать встроенный веб-сервер или использовать опрос или что-то еще. Однако у меня есть причины использовать Django, и я в любом случае хотел бы знать, как справляться с подобными случаями, потому что это не единственная ситуация, которую я могу себе представить, когда мне нужно хранить неизменяемый объект, созданный при запуске глобально.