10
votes

Comment les backends dynamiques commencent-ils à google app

Pouvons-nous commencer un backend dynamique de manière programmée? Pendant que lorsque un backend commence comment puis-je gérer la demande en tombant sur l'application (je veux dire app.appspot.com).

Lorsque j'arrête manuellement un backend dans la console d'administration et envoyez-y une demande, ce n'est pas de commencer "de manière dynamique"


0 commentaires

3 Réponses :


4
votes

Les backends sont documentés assez soigneusement ici . Les retombées doivent être démarrées et arrêtées avec AppCFG ou la console d'administration, comme documenté Ici . Un backend arrêté ne gérera pas les demandes - si vous le souhaitez, vous devriez probablement utiliser la file d'attente de la tâche.


12 commentaires

"Un backend arrêté ne gérera pas les demandes" C'est ce dont j'ai besoin. Le début, les états d'arrêt d'un backend dynamique indiqué dans la console d'administration ne sont pas les représentations correctes de son état. Juste "Démarrer" un backend dynamique dans la console d'administration, car il doit gérer des demandes de manière dynamique, elle ne vous facturera pas s'il n'y a aucune demande.


@RemotePath Ensuite, vous voulez des files d'attente de tâches, pas de backens. C'est exactement la façon dont les files d'attente de tâches fonctionnent.


Vous pouvez combiner des files d'attente de tâches et des backens comme ceci: taskQueue.add (URL = '/ Task_url', méthode = 'get', cible = 'nom_of_your_backend')) La tâche ne fonctionnera pas sur Dev cependant, Donc, définissez la cible sur Aucun sur Dev: TaskQueue.add (URL = '/ Task_url', Méthode = 'Get', Target = (NONE si Const.debug ailleurs 'Name_of_Your_Backend')) Où Débogage est égal à OS.Environ ['Server_Software']. StartSweh ('dev')


@CRIZCRAIG Il y a une méthode get_url dans l'API Backends qui vous permet d'éviter ce type de code spécial - il renvoie la bonne réponse pour ProD et Dev. Mon point était que si vous souhaitez démarrer et cesser de backends par programme, vous devriez probablement utiliser des files d'attente de tâches à la place.


@Nick cool, merci! Aussi merci pour toutes vos excellentes réponses sur Stackoverflow! Je suis toujours à la recherche de Nick Johnson Stuff :) Aussi, merci pour le grand service à Gae. Je looooove Google App Moteur! :RÉ


@Nick Johnson n'aurait-il pas besoin du nom du backend, pas de l'URL du paramètre cible?


@Crizcraig Il existe des méthodes pour cela aussi, dans le même module.


@Nickjohnson Dois-je utiliser à nouveau AppFY pour lancer un backend dynamique après chaque heure d'arrêt automatique?


@LuCemia Non, les backends dynamiques vont commencer et arrêter au besoin.


@Nickjohnson remercie votre réponse! C'est vraiment m'aider beaucoup. Je veux juste que ce soit plus clair, alors que vous avez mentionné "les backends dynamiques commenceront et s'arrêteront au besoin." L'arrêt "dynamique backend si nécessaire" est différent de "arrêter le backend par l'AppCFG ou la console d'administration backend", n'est-ce pas?


@LUCEMIA L'ensemble du point de backend dynamique est qu'ils sont dynamiques - ils commencent lorsqu'il y a du trafic qui a besoin de servir et d'arrêter quand ils sont inactifs pendant un moment.


@Nickjohnson La méthode Get URL n'est pas bonne si l'exécution du backend prend beaucoup de temps. La demande de demande de temps.



5
votes

Les backens dynamiques entrent en vigueur lorsqu'ils reçoivent une demande et sont refusés quand on oisif; ils sont idéaux pour le travail qui est intermittent ou entraîné par l'activité de l'utilisateur.

Les retombées des résidents fonctionnent continuellement, vous permettant de compter sur l'état de leur mémoire au fil du temps et effectuer une initialisation complexe.

http://code.google.com/appengine/docs/ python / backends / aperçu.html

J'ai récemment commencé à exécuter une longue tâche sur un backend dynamique et remarqua une augmentation spectaculaire de la performance de la facette. Je suppose que c'était parce que la longue tâche était en concurrence pour des ressources avec des demandes d'utilisateurs normales.


2 commentaires

"Les backends dynamiques entrent en vigueur lorsqu'ils reçoivent une demande" - Comment envoyez-vous une demande à un backend?


Eh bien, je pense qu'ils ont des points d'extrémité (de ce que je me souviens) comme backendname.appname.appot.com .



1
votes

Il apparaît qu'un backend dynamique ne doit pas être explicitement arrêté. Le survicew (http://code.google.com/appengine/docs/python/backends/python/backends/python.html) indique que la facturation d'un backend dynamique arrête 15 minutes après la procédure de traitement de la dernière demande. Donc, si votre application a un travail cron, par exemple, cela nécessite 5 minutes et doit fonctionner toutes les heures, puis vous pouvez configurer un backend pour le faire. Le coût que vous encourageez est de 15 + 5 minutes toutes les heures ou 8 heures pendant toute la journée. Je suppose que le quota gratuit vous permet 9 heures de bilan. Donc, ce type de scénario serait gratuit pour vous. Le backend commencera lorsque vous l'envoyez votre première demande via une file d'attente et vous arrêterez 15 minutes après la dernière demande que vous avez envoyée est traitée complètement.


0 commentaires