Eu tentei o mecanismo de aplicativos para o meu pequeno aplicativo de observação de terremotos
http://quakewatch.appspot.com/
Meu objetivo era ver os recursos do App Engine, então, aqui estão os principais pontos:
- ele não vem por padrão com o Django, ele possui sua própria estrutura da web, que é python, possui um expedidor de URL como o Django e usa modelos do Django. Portanto, se você tem o Django exp. você achará fácil de usar
- Você não pode executar nenhum processo de execução longa no servidor, o que você faz é responder à solicitação e o que deve ser rápido, caso contrário, o aplicativo o matará. Se o seu aplicativo precisar de muito processamento, o aplicativo não será a melhor maneira, caso contrário você terá que fazer o processamento. em um servidor de sua preferência
- Meu aplicativo quakewatch possui um recurso de assinatura, significa que eu tive que enviar por e-mail os últimos tremores mais recentes, mas não posso executar um processo em segundo plano no mecanismo de aplicativos para monitorar a nova solução de tremores aqui. É usar um serviço de terceiros, como pingablity.com, que pode conecte-se a uma das suas páginas e execute o email de inscrição, mas também aqui você terá que cuidar para não gastar muito tempo aqui ou dividir as tarefas em várias partes
- Ele fornece recursos de modelagem como o Django, mas o back-end é totalmente diferente, mas para um novo projeto não deve importar.
Mas, no geral, acho excelente para criar aplicativos que não precisam de muito processamento em segundo plano.
Editar: agora as filas de tarefas podem ser usadas para executar o processamento em lote ou tarefas agendadas
Edit: depois de trabalhar / criar um aplicativo real no GAE por um ano, agora minha opinião é que, a menos que você esteja criando um aplicativo que precise ser escalado para milhões e milhões de usuários, não use o GAE. Manter e executar tarefas triviais no GAE é uma dor de cabeça devido à natureza distribuída, para evitar erros de prazo excedido, contar entidades ou fazer consultas complexas exige código complexo, portanto, aplicativos complexos pequenos devem seguir o LAMP.
Editar: os modelos devem ser projetados especialmente considerando todas as transações que você deseja ter no futuro, porque entidades apenas no mesmo grupo de entidades podem ser usadas em uma transação e isso torna o processo de atualização de dois grupos diferentes um pesadelo, por exemplo, transferir dinheiro do usuário1 para o usuário2 na transação é impossível, a menos que estejam no mesmo grupo de entidades, mas torná-los no mesmo grupo de entidades pode não ser o melhor para fins de atualização frequente ... leia isto http://blog.notdot.net/2009/9/Distributed-Transactions- no App-Engine