Назад | Перейти на главную страницу

Несогласованные поиски кэша памяти из разных модулей Google AppEngine одного и того же приложения

Мы столкнулись со спорадической несогласованностью при поиске в кэше памяти из разных модулей (также известных как «службы») в одном приложении AppEngine (Python). Сценарий такой:

Интересно, что get_total_async иногда (редко) возвращает целочисленное значение 0 (не None) при вызове из модуля «приборной панели», тогда как при вызове из модуля «портала» оно возвращает (правильное) значение> 0.

Это несколько удивительно и заставляет нас поверить в то, что в службе кэша памяти может быть состояние гонки - возможно, только тогда, когда кто-то ищет один и тот же ключ в разных модулях (теперь Google называет их «сервисами»).

Кто-нибудь сталкивался с подобным явлением? Это «гейзенбаг», то есть его трудно воспроизвести.