Streamlit: как управлять вторым экземпляром и получать доступ к локально размещенным службам?

#caching #memcached #streamlit

#кэширование #memcached #освещенный потоком

Вопрос:

У меня есть потоковое приложение, которое полностью кэшируется. Фактически, я использую стороннюю систему кэширования, работающую на локальном порту, и я вижу, что кэш используется.

Однако streamlit запускает два разных экземпляра при запуске:

 # Windows Subsystem for Linux version 2.0, Running Ubuntu

  You can now view your Streamlit app in your browser.

  Local URL: http://localhost:8501
  Network URL: http://172.21.141.16:8501
 

Из моих инструкций печати создается впечатление, что только локальный экземпляр обращается к моему кэшу, размещенному на локальном порту.

Одновременно экземпляр сетевого URL-адреса вообще не использует кэш, размещенный на локальном порту, и пересчитывает все длительно выполняющиеся процессы, которые благополучно кэшируются на локальной стороне.

Я не выставляю эту систему за пределы виртуальной машины, поэтому меня не волнует безопасность.


Мой вопрос сводится к следующему: как мне принудительно или устранить ситуацию выполнения с двойным экземпляром streamlit, чтобы все запущенные экземпляры (если их должно быть два) могли получить доступ к локально запущенному кэшу?

В то же время мне нужно сохранить топологию сети streamlit, поскольку я могу получить доступ только к внешнему URL (http://172.21.141.16:8501 ) из основной операционной системы Windows.

Обратите внимание, что я использую локально работающий кэш, потому что я хочу получать доступ и накапливать кэшированные значения из нескольких процессов — некоторые передние и некоторые задние.

Ответ №1:

Streamlit не запускает два экземпляра, URL-адреса указывают относительный URL-адрес (localhost) и общедоступный / сетевой IP-адрес вашего компьютера.