Saya telah mencoba mesin aplikasi untuk aplikasi menonton gempa kecil saya
http://quakewatch.appspot.com/
Tujuan saya adalah untuk melihat kemampuan engine aplikasi, jadi inilah poin utamanya:
- itu tidak datang secara default dengan Django, ia memiliki kerangka kerja web sendiri yang pythonic memiliki URL dispatcher seperti Django dan menggunakan template Django Jadi jika Anda memiliki Django exp. Anda akan merasa mudah menggunakannya
- Anda tidak dapat menjalankan proses yang berjalan lama di server, apa yang Anda lakukan adalah membalas permintaan dan mana yang harus cepat, jika tidak, appengine akan membunuhnya. Jadi, jika aplikasi Anda membutuhkan banyak perangkat pemrosesan backend, itu bukan cara terbaik, jika tidak, Anda harus melakukan pemrosesan. di server Anda sendiri
- Aplikasi quakewatch saya memiliki fitur berlangganan, artinya saya harus mengirim email gempa terbaru saat mereka terjadi, tetapi saya tidak dapat menjalankan proses latar belakang di app engine untuk memantau solusi gempa baru di sini adalah dengan menggunakan layanan bagian ketiga seperti pingablity.com yang dapat terhubung ke salah satu halaman Anda dan yang mengeksekusi emailer berlangganan tetapi di sini juga Anda harus berhati-hati bahwa Anda tidak menghabiskan banyak waktu di sini atau membagi tugas menjadi beberapa bagian
- Ini memberikan Django seperti kemampuan pemodelan tetapi backend sama sekali berbeda tetapi untuk proyek baru itu tidak masalah.
Tapi secara keseluruhan saya pikir ini sangat baik untuk membuat aplikasi yang tidak membutuhkan banyak pemrosesan latar belakang.
Sunting: Sekarang antrian tugas dapat digunakan untuk menjalankan pemrosesan batch atau tugas terjadwal
Sunting: setelah bekerja / membuat aplikasi nyata pada GAE selama satu tahun, sekarang pendapat saya adalah bahwa kecuali Anda membuat aplikasi yang perlu untuk skala jutaan dan jutaan pengguna, jangan gunakan GAE. Mempertahankan dan melakukan tugas-tugas sepele di GAE adalah sakit kepala karena sifat terdistribusi, untuk menghindari tenggat waktu melebihi kesalahan, menghitung entitas atau melakukan permintaan kompleks memerlukan kode kompleks, sehingga aplikasi kecil yang kompleks harus menempel pada LAMP.
Sunting: Model harus dirancang khusus mempertimbangkan semua transaksi yang ingin Anda miliki di masa depan, karena entitas hanya dalam kelompok entitas yang sama dapat digunakan dalam transaksi dan itu membuat proses memperbarui dua kelompok yang berbeda menjadi mimpi buruk misalnya mentransfer uang dari pengguna1 ke pengguna2 dalam transaksi tidak mungkin kecuali mereka berada dalam grup entitas yang sama, tetapi menjadikannya grup entitas yang sama mungkin bukan yang terbaik untuk tujuan pembaruan yang sering dilakukan .... baca http://blog.notdot.net/2009/9/Distributed-Transactions- di-App-Engine