Ответил в комментариях Крис Г: используйте вместо этого setInterval и удалите цикл while;этот код будет вызывать clearData в быстрой последовательности, бесконечно.(кстати, cronjob определенно предпочтительнее для этой настройки)
Мне нужно создать функцию http, которая будет вызываться только один раз (при запуске) и после этого будет запускаться каждые 5 минут для проверки данных, и если эти данныеЧерез 2 часа мы очищаем его.
Несколько вещей, прежде чем я покажу код:
- Мы знаем о планировщике Google, но предпочитаем его не использовать.
- Мы знаем, что можем использовать cron-jobs для вызова нашего html всякий раз, когда нам нужно, но это будет означать, что другой сервис будет работать, и моя цель - запустить саму функцию без какой-либо службы, например, вызывающей ее.
Код:
const functions = require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp(functions.config().firebase);
exports.methodCaller = functions.https.onRequest((request, response) => {
setTimeout(() => {
while (true) {
clearData();
console.log('methodCaller execution')
}
}, 30000); // currently 30 seconds for testing purposes but will be 5 hours later on
});
function dataChecked() {
admin.database().ref('/logs/')
.once("value")
.then(snapshot => {
console.log(snapshot.val());
//code that checks data
});
}
Правильный ли мой способ определения времени ожидания функции.Я хочу, чтобы он каждые 5 минут вручную запускал проверку некоторых данных.
http-запрос требует ответа, но если я помещаю его в оператор while (true), он регистрируется только 2 раза.
Правильно ли мой код?