Google App Engine: What Is It Good For?, Page 2
Using Task Queues
You cannot start and manage long-running processes on the Google App Engine platform. You must perform application-specific calculations in response to HTTP requests, and these calculations should be quick to avoid any time outs. Originally, you had to use cron services to send your application HTTP requests at desired times or time intervals. The new (and still experimental) Task Queue support is nicer than using cron because you can programmatically add tasks to a task queue and specify the number of tasks per second that get taken from the queue and processed. You still process these tasks as HTTP requests though.
Using URL Fetch
Your Google App Engine applications can fetch information from external services using the URL Fetch service. Any fetch operations should execute quickly to avoid timeouts. Returned data payloads are also restricted to 1 megabyte of data.
The most convenient tools for Google App Engine development are those for the Python language. For example, it is relatively easy in Python to import/export databases to the Google App Engine datastore for any of your applications. The support for this in Java is basically non-existent.
For Python, I use the Python App Engine SDK, keep the local test app server running, and edit Python code and HTML templates with a simple text editor such as Emacs, Textmate, or gedit. The test app engine notices changed files automatically so the development process is agile and interactive.
For Java, I usually use Eclipse with the Google-supplied plugins that can create new projects, manage projects for local testing, and upload applications to Google App Engine. I also like to use IntelliJ, which also has very good Google App Engine support.
I find local development using either Java or Python to be fun and productive because the tool support is very good.
Costs for Using Google App Engine
The reason that Google App Engine is a low-cost solution for startups is that the free daily quota of resources is very generous. For efficiently written applications, you can support many users before you need to enable billing. I recommend that you carefully review the quotas and billing rates that you may incur if your application attracts a very large number of users, which is the type of "problem" that you are probably hoping for!To take full advantage of Google's relatively low hosting costs, apply the tips in this article to design web applications that can run within Google App Engine's limited runtime environment.
About the author
Mark Watson is a consultant living in the mountains of Central Arizona with his wife Carol and a very feisty Meyers Parrot. He specializes in web applications, text mining, and artificial intelligence. He is the author of 16 books and writes both a technology blog and an artificial intelligence blog at www.markwatson.com.