Нестабильный словарь в FastAPI в облаке пустует после холодного запускаPython

Программы на Python
Ответить
Anonymous
 Нестабильный словарь в FastAPI в облаке пустует после холодного запуска

Сообщение Anonymous »

Я использую Cloud Run для размещения приложения Python FastAPI. Когда соединение WebSocket установлено, я сохраняю его в словаре. Чтобы обеспечить безопасность потоков, я использую asyncio.Lock при изменении словаря.
Однако я столкнулся с проблемой, когда экземпляр Cloud Run запускается с холодного запуска. Словарь кажется пустым сразу после добавления соединения, хотя во время процесса я записываю состояние словаря. Вот фрагмент моих журналов:
2025-01-14 20:32:14.272 CET
добавлено соединение с комнатами: {'11d6a207-1700-466f-b32c-a880a32905b8' : {'36054a0d-cfbd-4283-b836-c3de613c2778': }
14 января 2025 г. 20:32:14.272 CET
add_connection конечная блокировка
2025-01-14 20:32:14.484 CET
получить комнаты {}
После того, как экземпляр Cloud Run прогреется (т. е. после холодного запуска) , все работает так, как ожидалось, и словарь ведет себя правильно.
Я подозреваю, что эта проблема может быть связана с конфигурацией или поведением Cloud Run во время холодного запуска. Я использую asyncio.Lock, чтобы избежать условий гонки, поэтому я не думаю, что параллелизм является проблемой.
Мои вопросы:
  • Известна ли проблема с сохранением состояния в памяти между запросами во время холодного запуска Cloud Run?
  • Стоит ли мне рассмотреть возможность изменения конфигурации (например, переключения между облаком первого и второго поколения) Бежать)?


Подробнее здесь: https://stackoverflow.com/questions/793 ... cold-start
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»