Мы запускаем довольно загруженное приложение для кэширования в AppEngine / Python (то есть более 200 000 запросов в день с пиками до 60 в секунду), и мы должны считать все (например, запрос, байты, байты).
Ваша проблема кажется менее острой; но решение, которое мы нашли, было также более простым, чем те, которые вы упомянули (а также прочитали): мы храним счетчики в Memcache и используем его функцию " incr () " везде, где это необходимо.
Поскольку Memcache прозрачно управляет шардингом, вам не нужно об этом думать.
Затем запрос cron запускается каждую минуту, чтобы получить значения, сохранить их в счетчиках хранилища данных и декремента по найденному значению с вызовом функции Memcache " decr () ".
Таким образом, приращения, происходящие между получением и уменьшением, не теряются и будут обрабатываться в следующую минуту.
Конечно, перебои с Memcache вызывают беспокойство, но они случаются не часто.