Как сохранить переменную в Google Cloud Platform? Сейчас я использую глобальную переменную, которую разделяют мои маршруты, но значения отключены каждый раз, когда запрос был отправлен на маршрут. Я думаю, это связано с тем, что у моего сервера может быть несколько экземпляров, которые используют одну и ту же переменную. Мое приложение использует Node.js/Express.Как хранить переменные в облачной платформе Google
Мой POST маршрут устанавливает new_posted_time
переменную, которая использует /display-message
:
var new_posted_time = 0;
app.post('/message', function (request, response) {
message = request.body.Body;
new_posted_time = new_posted_time + 1;
console.log("This is the new time from POST: " + new_posted_time);
response.send("<Response><Message>Heyyo!</Message></Response>");
});
Мой GET маршрут получает значение для new_posted_time
, который был определен в /message
.
app.get('/display-message', function(req,res){
var last_updated_time = req.query.last_updated;
function checkMessage() {
var new_time = new_posted_time;
console.log("Checking messaged with new time from GET: " + new_time);
if(!last_updated_time || last_updated_time < new_time) {
updateMessage(new_time);
}
else {
console.log("No new messages at this time");
myTimeout = setTimeout(function(){
checkMessage(res);
}, 1000 * 10); //10 seconds
}
}
function updateMessage() {
console.log("Updating message now");
var output = {
success: 1,
data: message,
old_stamp: last_updated_time,
new_stamp: new_stamp
};
return res.json(output);
}
checkMessage();
});
Так что мне нужно, чтобы иметь возможность хранить общую переменную new_posted_time
где-то в базе данных Google, потому что значение не соответствует каждый раз, когда запускается мое приложение из-за многие запущенные экземпляры (это мое предположение).
Если я храню переменные как объекты в хранилище данных, это то же самое, что хранить состояние в моих экземплярах? Если да, то каков наиболее эффективный/подходящий метод для хранения общих переменных? –
Использование хранилища данных не совпадает с «сохранением состояния в ваших экземплярах». Разница заключается в том, что при использовании хранилища данных вы записываете данные на диск с помощью службы, которая всегда будет доступна при записи в общую переменную, которую вы храните в памяти, на экземпляре машины, который может быть отключен произвольно автоскалером. –
спасибо! Я немного запутался в том, как реализовать хранилище google в моем коде. Я вижу несколько способов сделать это в Node.js, но не могу заставить его работать. –