Я работаю над многопользовательской игрой, и ей нужна очередь сообщений (т. Е. Входящие сообщения, отсутствующие дубликаты или удаленные сообщения, при условии отсутствия неожиданного удаления кэша). Вот очереди на основе memcache, о которых я знаю:
Я узнал концепцию очереди memcache из этого сообщения в блоге :
Все сообщения сохраняются с целым числом в качестве ключа. Есть один ключ, который имеет следующий ключ, и тот, который имеет ключ самого старого сообщения в очереди. Для доступа к ним в качестве атомарного метода используется метод увеличения / уменьшения, поэтому есть два ключа, которые действуют как блокировки. Они увеличиваются, и если возвращаемое значение равно 1, процесс блокируется, в противном случае он продолжает увеличиваться. Как только процесс завершен, он устанавливает значение обратно в 0. Простой, но эффективный. Одно предостережение в том, что целое число будет переполнено, поэтому существует некоторая логика, которая устанавливает используемые ключи в 1, как только мы приближаемся к этому пределу. Поскольку операция приращения является атомарной, блокировка необходима только в том случае, если используются две или более кэш-памяти (для избыточности), чтобы синхронизировать их.
У меня вопрос: есть ли служба очереди сообщений на основе memcache, которая может работать в App Engine?