J'ai essayé app engine pour mon petit tremblement de terre watch application
http://quakewatch.appspot.com/
Mon but était de voir les capacités des app engine, donc, voici les principaux points:
- il n'est pas fourni par défaut avec django, il a son propre framework web qui est pythonic URL répartiteur comme django et il utilise des modèles django
Donc, si vous avez django exp. vous le trouverez facile à utiliser
- Mais vous pouvez utiliser n'importe quel pur framework en python et django peuvent être facilement ajoutés voir
http://code.google.com/appengine/articles/django.html
google-app-engine-django (http://code.google.com/p/google-app-engine-django/ projet est excellent et fonctionne presque comme travailler sur un projet django
- Vous pouvez pas exécuter un long processus en cours d'exécution sur le serveur, ce que vous avez à faire est de répondre à la demande et qui doit être rapide sinon appengine le tuera
Donc, si votre application a besoin de beaucoup de traitement principal appengine est pas la meilleure façon
sinon, vous aurez à faire le traitement sur un serveur de votre propre
- Mon quakewatch application dispose d'une fonctionnalité d'abonnement, cela signifie que j'ai dû envoyer plus tard des tremblements de terre comme ils les parages, mais je ne peux pas lancer un processus en arrière-plan dans app engine pour surveiller les nouveaux tremblements de terre
solution ici est d'utiliser une troisième partie de service comme pingablity.com qui peut se connecter à l'une de vos page et qui exécute l'abonnement e-mailer
mais ici aussi, vous devrez prendre soin de ne pas passer beaucoup de temps ici
ou de la rupture d'une tâche en plusieurs morceaux
- Il fournit Django comme les capacités de modélisation, mais backend est totalement différente, mais pour un nouveau projet, il ne devrait pas d'importance.
Mais dans l'ensemble je pense qu'il est excellent pour créer des applications qui n'ont pas besoin de beaucoup de traitement en arrière-plan.
Edit:
Maintenant files d'attente de tâches peuvent être utilisés pour l'exécution du traitement par lots ou des tâches planifiées
Edit:
après le travail/la création d'une application réelle sur GAE pendant un an, maintenant, mon opnion est que si vous faites une demande qui doit à l'échelle de millions et de millions d'utilisateurs, ne pas utiliser de GAE. Maintenir et faire des tâches insignifiantes en FGA est un mal de tête dû à la nature distribuée, pour éviter de délai dépassé les erreurs, le comte d'entités ou de faire des requêtes complexes nécessite un code complexe, donc petit complexe de l'application devrait s'en tenir à la LAMPE.
Edit:
Les modèles doivent être spécialement conçus en tenant compte de toutes les transactions que vous souhaitez avoir dans l'avenir, parce que les seules entités du même groupe d'entités peut être utilisé dans une transaction et que cela rend le processus de mise à jour de deux groupes différents d'un cauchemar par exemple, transférer de l'argent à partir de user1 à l'utilisateur2 dans la transaction est impossible, à moins qu'ils soient dans le même groupe d'entités, mais en les rendant même entité du groupe peut ne pas être le meilleur pour des mises à jour fréquentes des fins....
lire ce http://blog.notdot.net/2009/9/Distributed-Transactions-on-App-Engine