Mon application Web google script atteint récemment les limites qps. Quel serait un meilleur moyen d'améliorer les performances.Google Apps Script Web App limite les exécutions simultanées et les exécutions simultanées
J'ai environ 50 utilisateurs actifs. J'utilise une feuille de calcul google de 15 000 lignes comme base de données et mon application traite les données json demandées par les utilisateurs de cette feuille de calcul. J'utilise un sondage long pour garder la connexion active pendant 5 min et la ferme si aucune mise à jour dans la feuille de calcul n'arrive. Puis le client se reconnecte. Web App est publié pour être exécuté comme moi.
Mes œuvres polling comme ceci:
function doGet(e){
var userHasVersion = e.parameter.userVersion
while (runningTime < 300001) {
var currentServerVersion = parseInt(cache.get("currentVersion"),10)
if(userVersion<currentServerVersion){
var returndata = []
for(var i = userVersion+1; i <= currentServerVersion;i++){
var newData = cache.get(i)
if(newData!=null){returnData.push(JSON.parse(cache.get(newData)))}
}
return ContentService.createTextOutput(JSON.stringify({currentServerVersion,data:returnData })).setMimeType(ContentService.MimeType.JSON);
} else {
Utilities.sleep(20000)
}
runningTime = calculateRunningTime()
}
}
Ce que j'ai essayé jusqu'à présent:
1) Je demande avec CacheService optimisé pour réduire les appels à la feuille de calcul. Cela m'a aidé pendant quelques mois, mais maintenant je reçois de plus en plus d'erreurs qps.
2) Demander à l'équipe de Google des quotas. Ils m'ont expliqué qu'il n'y a pas de quotas/limites publiés pour les exécutions simultanées et qu'ils sont sujets à changement sans préavis. Ils ont conseillé l'utilisation de cacheService et une meilleure gestion des erreurs.
Je pense passer d'une interrogation longue à une scrutation rapide. Mais il se sent comme un inconvénient. Devrais-je essayer d'optimiser davantage les performances ou passer à un autre service?
Vous essayez d'utiliser l'application "Exécuter l'application en tant qu'utilisateur accédant à l'application"? (les utilisateurs doivent utiliser la même base de données)
Est-ce que Google Script API Executable est différent de Web App? Il semble que cela puisse convenir, mais je ne suis pas sûr qu'ils partagent les mêmes quotas qps.
Je considère également le service GAE, mais je voudrais éviter de dépasser le quota gratuit.
Un conseil sera grandement apprécié!
Merci! Je vais essayer de tester cela. Je ne savais pas à propos de ce tour. Cela devrait être utile si je passe à l'interrogation courte. Alors cette différence de performance aura certainement du sens! –
@Evgeny Vostok Je suis heureux de vous aider. Si mon échantillon ne fonctionne pas, n'hésitez pas à me le dire. Et si vous utilisez '' put() '' pour mettre les données dans le cache, '' putAll() '' est meilleur. – Tanaike