У меня есть следующий код для приложения в стиле мессенджера.Какова продолжительность жизни частной переменной в классе конечных точек GAE?
public class MyEndpoint {
private Integer numberOfConvos=0;
...}
я обновить его так:
@ApiMethod (name="createGroup")
public myModel createGroup(@Named("profile") String profile){
numberOfConvos=numberOfConvos+1;
}
Так каждый раз я сделать новый чат, я могу сделать уникальный и растущий ID.
Если я переделаю сервер (например, исправление ошибки), будет ли сброшена переменная? Я не хочу хранить этот токен в хранилище данных, потому что он не кажется необходимым и плата за чтение данных/записи.
Если он будет сброшен каждый раз, когда я развертываю, что является правильным способом отслеживать эту переменную?
Если это не сбрасывается при перераспределении, как я могу заставить его сбросить?
Как уже упоминалось в моем посте, я не хочу, чтобы держать его в хранилище из-за многих операций чтения/записи, мы бы понести, а также 1 локаута во всем мире, когда чтение/запись для этого объекта. Для чат-приложения это не совсем приемлемая вещь. Я всегда мог генерировать случайный идентификатор и проверять, был ли этот идентификатор ранее (я делаю это в другом месте), однако я недоволен загрузкой процессора. Какие-нибудь другие варианты, как вы видите? – Japes
Если вы передумали и захотите использовать хранилище данных, вы можете взглянуть на осколочные счетчики. https://cloud.google.com/appengine/articles/sharding_counters – gipsy
Если формат id не важен для вас, и вы не хотите хранить данные в хранилище данных, используйте UUID для генерации случайного идентификатора с сильным гарантирует, что он еще не будет существовать. – David