[google-appengine] Should developers pay for the useless instances? Can we set max instances to 1?
What's the point in using AE infrastructure then? You're probably better off to EC2 micro instance, or openshift, or cloudfoundry, or appfog, or heroku, in that case. Personally, I'd be -1 unstarring (if I could) such a feature. -- You received this message because you are subscribed to the Google Groups Google App Engine group. To view this discussion on the web visit https://groups.google.com/d/msg/google-appengine/-/Ecu4sDu46WkJ. To post to this group, send email to google-appengine@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en.
Re: [google-appengine] Should developers pay for the useless instances? Can we set max instances to 1?
I can see how this feature would be useful -- especially for testing. I have an app I haven't released yet that once a minute sucks in new data and spawns many (maybe up to 200/minute max) requests using the task queue to process that data. When using frontends I was often spinning up 2-3+ instances automatically even when throttling back task queue rates. I can run all of the requests on the same size backend (B1) just fine, the only downside is that I'm paying $1.20 a day now to have a test app running 24/7... I am using backends (one B1 backend specifically) for the sole purpose of being able to control how many instances are running (only one). My requests should work great with multi-threading (using python 2.7 w/ HR) and are neither long running or latency critical but I'm using a backend because it's cheaper than letting frontends spin up and run idle. -Robert On Tue, Jul 10, 2012 at 11:06 PM, alex a...@cloudware.it wrote: What's the point in using AE infrastructure then? You're probably better off to EC2 micro instance, or openshift, or cloudfoundry, or appfog, or heroku, in that case. Personally, I'd be -1 unstarring (if I could) such a feature. -- You received this message because you are subscribed to the Google Groups Google App Engine group. To view this discussion on the web visit https://groups.google.com/d/msg/google-appengine/-/Ecu4sDu46WkJ. To post to this group, send email to google-appengine@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en. -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en.
Re: [google-appengine] Should developers pay for the useless instances? Can we set max instances to 1?
I'm using M/S datastore. I think HR may be better, but I don't want to migrate now. -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en.
Re: [google-appengine] Should developers pay for the useless instances? Can we set max instances to 1?
The feature can be optional, right? People who want unbounded number of instances can disable that feature. To me, it doesn't make sense that it is impossible to limit number of active instances when you are paying for that. On Wed, Jul 11, 2012 at 8:06 AM, alex a...@cloudware.it wrote: What's the point in using AE infrastructure then? You're probably better off to EC2 micro instance, or openshift, or cloudfoundry, or appfog, or heroku, in that case. Personally, I'd be -1 unstarring (if I could) such a feature. -- You received this message because you are subscribed to the Google Groups Google App Engine group. To view this discussion on the web visit https://groups.google.com/d/msg/google-appengine/-/Ecu4sDu46WkJ. To post to this group, send email to google-appengine@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en. -- Best Regards, Rerngvit Yanggratoke -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en.
Re: [google-appengine] Synchronous con jobs are BROKEN (logs inside)
Put this logic in a backend. Start a thread that sleeps for 3 minutes, processes cron, and goes back to sleep for 3 minutes. You'll want to be a little more clever than that because you want to be on 3-minute boundaries not 3-minute intervals but it should be straightforward. Appengine's cron is best effort and your game requires precise timing. It's better to manage the schedule yourself. Jeff On Tue, Jul 10, 2012 at 7:51 PM, Richard steven...@gmail.com wrote: I have a game that relies on a synchronous cron job. For the last few days, the game timer has been out of whack. I pulled the logs and finally figured out that my 3 min synchronous cron job fires like this (see below). In the mean time, is there ANY way I can get my game working and always firing a URL (to create leaderboards/etc) at 3 minute intervals ? 10/Jul/2012:09:39:20 10/Jul/2012:09:42:11 10/Jul/2012:09:45:06 10/Jul/2012:09:48:05 10/Jul/2012:09:51:07 10/Jul/2012:09:54:11 10/Jul/2012:09:57:08 10/Jul/2012:10:00:06 10/Jul/2012:10:03:04 10/Jul/2012:10:06:03 10/Jul/2012:10:09:06 10/Jul/2012:10:12:03 10/Jul/2012:10:15:06 10/Jul/2012:10:18:14 10/Jul/2012:10:21:12 10/Jul/2012:10:24:06 10/Jul/2012:10:27:04 10/Jul/2012:10:30:03 10/Jul/2012:10:33:18 10/Jul/2012:10:36:03 10/Jul/2012:10:39:07 10/Jul/2012:10:42:11 10/Jul/2012:10:45:14 10/Jul/2012:10:48:03 10/Jul/2012:10:51:08 10/Jul/2012:10:54:03 10/Jul/2012:10:57:04 10/Jul/2012:11:00:08 10/Jul/2012:11:03:06 10/Jul/2012:11:06:15 10/Jul/2012:11:09:06 10/Jul/2012:11:12:08 10/Jul/2012:11:15:16 10/Jul/2012:11:18:15 10/Jul/2012:11:21:15 10/Jul/2012:11:24:09 10/Jul/2012:11:27:11 10/Jul/2012:11:30:15 10/Jul/2012:11:33:08 10/Jul/2012:11:36:09 10/Jul/2012:11:39:12 10/Jul/2012:11:42:08 10/Jul/2012:11:45:06 10/Jul/2012:11:48:07 10/Jul/2012:11:51:03 10/Jul/2012:11:54:05 10/Jul/2012:11:57:03 10/Jul/2012:12:00:10 10/Jul/2012:12:03:08 10/Jul/2012:12:06:04 10/Jul/2012:12:09:07 10/Jul/2012:12:12:03 10/Jul/2012:12:15:04 10/Jul/2012:12:18:03 10/Jul/2012:12:21:05 10/Jul/2012:12:24:13 10/Jul/2012:12:27:09 10/Jul/2012:12:30:04 10/Jul/2012:12:33:21 10/Jul/2012:12:36:10 10/Jul/2012:12:39:12 10/Jul/2012:12:42:07 10/Jul/2012:12:45:15 10/Jul/2012:12:48:12 10/Jul/2012:12:51:09 10/Jul/2012:12:54:14 10/Jul/2012:12:57:06 10/Jul/2012:13:00:09 10/Jul/2012:13:03:10 10/Jul/2012:13:06:19 10/Jul/2012:13:09:08 10/Jul/2012:13:12:17 10/Jul/2012:13:15:06 10/Jul/2012:13:18:06 10/Jul/2012:13:21:03 10/Jul/2012:13:24:07 10/Jul/2012:13:27:03 10/Jul/2012:13:30:04 10/Jul/2012:13:33:04 10/Jul/2012:13:36:14 10/Jul/2012:13:39:07 10/Jul/2012:13:42:09 10/Jul/2012:13:45:13 10/Jul/2012:13:48:06 10/Jul/2012:13:51:04 10/Jul/2012:13:54:08 10/Jul/2012:13:57:10 10/Jul/2012:14:00:21 10/Jul/2012:14:03:13 10/Jul/2012:14:06:02 10/Jul/2012:14:13:01 10/Jul/2012:14:15:12 10/Jul/2012:14:18:11 10/Jul/2012:14:21:17 10/Jul/2012:14:24:05 10/Jul/2012:14:27:12 10/Jul/2012:14:30:08 10/Jul/2012:14:33:04 10/Jul/2012:14:36:13 10/Jul/2012:14:39:10 10/Jul/2012:14:42:14 10/Jul/2012:14:45:11 10/Jul/2012:14:48:13 10/Jul/2012:14:51:08 10/Jul/2012:14:54:11 10/Jul/2012:14:57:04 10/Jul/2012:15:00:06 10/Jul/2012:15:03:09 10/Jul/2012:15:06:08 10/Jul/2012:15:09:07 10/Jul/2012:15:12:07 10/Jul/2012:15:15:23 10/Jul/2012:15:18:21 10/Jul/2012:15:21:08 10/Jul/2012:15:24:06 10/Jul/2012:15:27:11 10/Jul/2012:15:30:04 10/Jul/2012:15:33:07 10/Jul/2012:15:34:31 10/Jul/2012:15:36:12 10/Jul/2012:15:39:14 10/Jul/2012:15:42:10 10/Jul/2012:15:45:11 10/Jul/2012:15:46:25 10/Jul/2012:15:48:11 10/Jul/2012:15:51:10 10/Jul/2012:15:54:16 10/Jul/2012:15:57:05 10/Jul/2012:16:00:07 10/Jul/2012:16:03:08 10/Jul/2012:16:06:18 10/Jul/2012:16:09:18 10/Jul/2012:16:12:13 10/Jul/2012:16:15:15 10/Jul/2012:16:18:06 10/Jul/2012:16:21:04 10/Jul/2012:16:24:05 10/Jul/2012:16:27:10 10/Jul/2012:16:30:19 10/Jul/2012:16:33:11 10/Jul/2012:16:36:19 10/Jul/2012:16:39:12 10/Jul/2012:16:42:13 10/Jul/2012:16:45:14 10/Jul/2012:16:48:19 10/Jul/2012:16:51:05 10/Jul/2012:16:54:09 10/Jul/2012:16:57:21 10/Jul/2012:17:00:18 10/Jul/2012:17:03:04 10/Jul/2012:17:06:05 10/Jul/2012:17:09:10 10/Jul/2012:17:12:12 10/Jul/2012:17:15:13 10/Jul/2012:17:18:11 10/Jul/2012:17:21:14 10/Jul/2012:17:24:04 10/Jul/2012:17:27:19 10/Jul/2012:17:30:16 10/Jul/2012:17:33:04 10/Jul/2012:17:36:09 10/Jul/2012:17:39:08 10/Jul/2012:17:42:10 10/Jul/2012:17:45:11 10/Jul/2012:17:48:24 10/Jul/2012:17:51:04 10/Jul/2012:17:54:10 10/Jul/2012:17:57:19 10/Jul/2012:18:00:11 10/Jul/2012:18:03:10 10/Jul/2012:18:06:10 10/Jul/2012:18:09:20 10/Jul/2012:18:12:05 10/Jul/2012:18:15:26 10/Jul/2012:18:18:16 10/Jul/2012:18:21:21 10/Jul/2012:18:24:11 10/Jul/2012:18:27:18 10/Jul/2012:18:30:29 10/Jul/2012:18:33:13 10/Jul/2012:18:36:24 10/Jul/2012:18:39:13 10/Jul/2012:18:42:18 10/Jul/2012:18:45:20 10/Jul/2012:18:48:13 10/Jul/2012:18:51:24 10/Jul/2012:18:54:14 10/Jul/2012:18:57:19 10/Jul/2012:19:00:12
[google-appengine] Re: Datastore Indexes stuck. vacuum_indexes didn't fix it
We're having the same problem - indices are stuck Building vacuum didn't help. Anything else we can do? The app id is: apps-poc (HRD). Thanks, Udi On Sunday, June 10, 2012 10:46:49 AM UTC+3, Gwyn Howell wrote: I have datastore indexes stuck in Building status. I have tried deleting my index.yaml and running vacuum_indexes. That deleted all the other indexes, but not the 5 stuck in Building status. How do I fix this? (Googlers, my App ID is phoenixhealth-dms!) Thanks -- You received this message because you are subscribed to the Google Groups Google App Engine group. To view this discussion on the web visit https://groups.google.com/d/msg/google-appengine/-/GP4yuYP_otsJ. To post to this group, send email to google-appengine@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en.
[google-appengine] Re: Should developers pay for the useless instances? Can we set max instances to 1?
Here's the feature request. Please star it. http://code.google.com/p/googleappengine/issues/detail?id=5858 -- You received this message because you are subscribed to the Google Groups Google App Engine group. To view this discussion on the web visit https://groups.google.com/d/msg/google-appengine/-/O2FqOfUfHdUJ. To post to this group, send email to google-appengine@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en.
Re: [google-appengine] Re: Spring MVC + GAE = slow startup
Out of interest, which framework(s) are you using to replace Spring? On Tuesday, July 10, 2012 10:02:17 PM UTC+2, Rick Mangi wrote: FWIW I gave up on spring for that same reason. All of the reflection, scanning and parsing of XML or annotations is just not designed for an environment like appengine. It's meant for apps that start up once and stay up for a long time. On Tuesday, July 10, 2012 8:19:44 AM UTC-4, rerngvit yanggratoke wrote: I read it earlier somewhere that Spring MVC is kind of too heavy for GAE. The cold start time will be much lower if you use some other lightweight libraries. However, this means you could not take advantages of mature and advanced framework like Spring anyway. On Tue, Jul 10, 2012 at 2:13 PM, Jordi P.S. planad...@gmail.com wrote: Hello guys, Tomas, I'm facing the same issues as you. I have Spring MVC with velocity and one single JSP and I get startup times from 50+ seconds. I started applying the measures you guys propose and I don't get major reductions. Have you fixed this issue already? Jordi. On Tuesday, April 10, 2012 3:47:57 PM UTC+2, jon wrote: Just did one quick test, it takes about 24 s to spin up an instance. I guess all this code we've written has added about 10 s of startup time. So far it hasn't been a problem because we reserve instances. Oh there's one other trick that we do. We map /_ah/warmup to a servlet that exercises as much of our stack as possible. We use Spring 3.0.x. Our lib folder shows 47 individual JARs (including our own). Yikes! On Apr 10, 6:12 am, Tomas tomas.ada...@gmail.com wrote: Hi, I've done all of those already and nothing helps. As I said - the simplest MVC with just minimal spring libraries (excluding jpa/jdo app engine lib) with one JSP with only htm in it tak 13+ secs to startup. I've spent two days trying to optimize everything (annotations support, scanning, repacking to bigger jars) but nothing helps. 1) what version of spring do you use (maybe the 3.1 is causing troubles) 2) how many other libraries did you have in your application Thanks. On Monday, 9 April 2012 17:48:35 UTC+12, jon wrote: Our app is also Spring-based. We did some optimisation about a year ago. Don't really remember how quickly we got our app to start. I think it was in the ballpark of the 13s result you got. 50s is too long. Here's what we've done: * combine our own classes into one JAR * reduce dependencies as much as possible (exclude unnecessary JPA/JDO dependencies if you're not using them) * turn off Spring autoscan (we list Controllers explicitly, but we do use annotations inside the Controllers) * use static instead of dynamic JSP includes when possible * turn on JSP precompilation * there may be a few other things I'm forgetting On Apr 8, 6:16 pm, Tomas tomas.ada...@gmail.com wrote: Hi guys, I've decided to convert my servlet/jdo based app engine app to spring mvc (the current app is starting to limit me on doing quick changes/improvements in the code and as I have quite good experience with spring on standard non cloud platforms I've decided to give it a go). So I've put together project including: - Spring + Spring MVC + Apache Velocity - ehcache + spring-annotations for ehcache + own decorators/interceptors for appengine memcached - objectify - some other util classes ie jsoup, commons (util, baens, logging, codec), gdata The lib directory contains ~42MB of jars (including appengine libraries which makes ~25MB) After deploy, the app takes 50+ seconds to start (sometime the first request get killed after 60 seconds and another app is started) - I've read some articles about speeding up the spring on gae and decided to do another little test. I've created testing app containing only spring + spring mvc with one controller (no other beans, but had to keep the annotation scan enabled for mvc mapping - but disabled the component scan). The controller simply forwards to JSP file with text. Deployed and the page got displayed after 13 seconds. I knew the Spring with all proxies and scanning is not optimal for GAE but I wasn't expecting this at all - it seems like the app have issues with simple loading the libraries as I can see how the memory of instance is growing by 1 MB per second. I've tried to: 1) merge jars into 3-4 bigger ones 2) disable annotations (just for the test as with new spring mvc its quite hard to do some better mapping only in xml) 3) lazy load some spring beans And I can save like 5-10 secods from those 50+ seconds of my startup - is it really so bad for everyone or is there some magic
[google-appengine] Task Guarantee?
Hello, I have been designing my app with the notion in mind that even named tasks may execute more than once, but I only recently came to realize that a task may not execute at all. I have a task that operates on a subset of my entities and it's absolutely imperative that all members of this subset get processed and saved. I originally thought named tasks would help accomplish this, but this does not seem to be the case. Is there any way to guarantee that I process these entities? I also considered a cron job that checks every couple of minutes to check for unprocessed entities(since a cron job will kick off the initial task) but I was hoping for a slightly more elegant solution. Thanks, Richard -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en.
[google-appengine] Re: Task Guarantee?
If you need to be super-certain, then you will always want to have a status flag that tells you if you have already processed some entity or not. It's also useful for cases where you cannot use transactions (a task might die in the middle as well of course) Well, at least that's how we do it :) Whenever something is important, we want to track some kind of status anyhow. One of these statuses would be STATUS_UNPROCESSED or so. Cheers, Per On Wednesday, July 11, 2012 1:55:37 PM UTC+2, Richard Arrano wrote: Hello, I have been designing my app with the notion in mind that even named tasks may execute more than once, but I only recently came to realize that a task may not execute at all. I have a task that operates on a subset of my entities and it's absolutely imperative that all members of this subset get processed and saved. I originally thought named tasks would help accomplish this, but this does not seem to be the case. Is there any way to guarantee that I process these entities? I also considered a cron job that checks every couple of minutes to check for unprocessed entities(since a cron job will kick off the initial task) but I was hoping for a slightly more elegant solution. Thanks, Richard -- You received this message because you are subscribed to the Google Groups Google App Engine group. To view this discussion on the web visit https://groups.google.com/d/msg/google-appengine/-/UNIfi6NldFYJ. To post to this group, send email to google-appengine@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en.
[google-appengine] Re: Task Guarantee?
tasks may execute more than once, but I only recently came to realize that a task may not execute at all. How so? I've noticed the former, but not the latter. -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en.
[google-appengine] Re: Task Guarantee?
Same here; I would be very concerned if this were the case. I use transactional task en-queues; once successfully on a queue, I have never seen a task fail to attempt execution. In cases where the execution is not successful, the task system correctly retries the task as specified by configuration. I don't expect any guarantees around timing of execution, although for the most part the ETA settings work pretty well. On Wednesday, July 11, 2012 9:15:19 AM UTC-4, pdknsk wrote: tasks may execute more than once, but I only recently came to realize that a task may not execute at all. How so? I've noticed the former, but not the latter. -- You received this message because you are subscribed to the Google Groups Google App Engine group. To view this discussion on the web visit https://groups.google.com/d/msg/google-appengine/-/RTFjRsfgETQJ. To post to this group, send email to google-appengine@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en.
[google-appengine] Re: Should developers pay for the useless instances? Can we set max instances to 1?
Starred. IMO there is absolutely no good reason to NOT allow people to set a maximum number of instances. I personally would not use such a setting for a production app that expects variable traffic spikes, but GAE is not just for apps that need to scale infinitely. Sure, that is one of its most powerful features, but simply avoiding all infrastructure management, at whatever scale, is a huge value. On Wednesday, July 11, 2012 4:40:56 AM UTC-4, Kyle Finley wrote: Here's the feature request. Please star it. http://code.google.com/p/googleappengine/issues/detail?id=5858 -- You received this message because you are subscribed to the Google Groups Google App Engine group. To view this discussion on the web visit https://groups.google.com/d/msg/google-appengine/-/F1sb3sPiBfoJ. To post to this group, send email to google-appengine@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en.
[google-appengine] What happened today?
Check these two Java status screenshots below for today and june 23. Is there an update going on or something that could explain this significant latency difference? Francois http://www.google.com/chart?chxt=x,ychd=e:BUCrECFYGvIGJdKzMKNhO4QORlS8UTVpXAYXZubEcbdyfJgfh2jNkkl6nRoop.rVssuDvawxyHze012M3i456Q7n89-U.b,agRbRMZoSSdHqVaaR8qgZ5Y.S0XTW1ePhEahaUX7vBdlgiqek.cuaaY5zsrPhWM2TUfmgLs4bmhteegVjs1FeroyYRUySSchxp=0,0.0,16.7,33.3,50.0,66.7,83.3,100.0|1,20.0,40.0,60.0,80.0,100.0chxs=chg=0,20.00,1,2chco=0077ccchm=R,7f7f7f,0,0.000,0.001|R,7f7f7f,0,0.167,0.168|R,7f7f7f,0,0.333,0.335|R,7f7f7f,0,0.500,0.501|R,7f7f7f,0,0.667,0.668|R,7f7f7f,0,0.833,0.835|R,7f7f7f,0,1.000,1.001|B,eaf0f4,0,0,0chs=700x290cht=lxychxl=0%3A%7C6/23%2012%20AM%7C4%20AM%7C8%20AM%7C12%20PM%7C4%20PM%7C8%20PM%7C6/24%2012%20AM%7C1%3A%7C40.00%7C80.00%7C120.00%7C160.00%7C200.00chls=2,0,0chxx=0_0 June 23 : max 160ms, average ~80ms http://www.google.com/chart?chxt=x,ychd=e:AdA8A8C5C5DYDYEXEXEXF1F1GUGUHTHTHyIRIxJQJvKOKuLNLsNKNKNpOJOoPHPnQGQlQlRkRkSDSiTCTCUAUAUAU.U.VeV9WdWv,GbOkmugvsdhGZg2naaEcFsEbMIEFKrIyKtOcuSRaiqO2FhNDFjE6foHbPXagdld3MNRMKDSC,A8BbB6CaC5C5DYDYD4EXEXEXEXE2FVF1F1GUGUGzHTHTMrNKNKQlQlRERkRkTCTCThUAUAUAUAUfU.U.,Ok5Q2i1MmugvnCsdsdhY0lhGZgfa2nOcY7uSE6WwfoagnhdldllXd3__chxp=0,0.0,16.7,33.3,50.0,66.7,83.3,100.0|1,20.0,40.0,60.0,80.0,100.0chxs=chg=0,20.00,1,2chco=0077cc,00chm=R,7f7f7f,0,0.000,0.001|R,7f7f7f,0,0.167,0.168|R,7f7f7f,0,0.333,0.335|R,7f7f7f,0,0.500,0.501|R,7f7f7f,0,0.667,0.668|R,7f7f7f,0,0.833,0.835|R,7f7f7f,0,1.000,1.001|B,eaf0f4,0,0,0|B,cc,1,0,0chs=700x290cht=lxychxl=0%3A%7C7/11%2012%20AM%7C4%20AM%7C8%20AM%7C12%20PM%7C4%20PM%7C8%20PM%7C7/12%2012%20AM%7C1%3A%7C250.00%7C500.00%7C750.00%7C1000.00%7C1250.00chls=2,0,0|2,0,0chxx=0_0 July 11 : max 1000ms, average ~250ms (?) -- You received this message because you are subscribed to the Google Groups Google App Engine group. To view this discussion on the web visit https://groups.google.com/d/msg/google-appengine/-/vXzOetAKrIgJ. To post to this group, send email to google-appengine@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en.
Re: [google-appengine] Can't access google-engage.appspot.com/ru/dashboard/
Hi Jorge. Thanks for the report. As others have pointed out, this forum is for App Engine related issues, but you are better of letting the engage folks know directly. You can reach them at: engage-supp...@google.com. cheers, robert On Tue, Jul 10, 2012 at 7:51 AM, Jorge Grajales jorge.graja...@aumentatutrafico.co wrote: Can't access google-engage.appspot.com/ru/**dashboard/http://google-engage.appspot.com/ru/dashboard/, there is error 500 server error Error: Server ErrorThe server encountered an error and could not complete your request. If the problem persists, please reporthttp://code.google.com/appengine/community.html your problem and mention this error message and the query that caused it. -- You received this message because you are subscribed to the Google Groups Google App Engine group. To view this discussion on the web visit https://groups.google.com/d/msg/google-appengine/-/bSm3bhQSLoQJ. To post to this group, send email to google-appengine@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en. -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en.
[google-appengine] Re: App Engine Office Hours hangout, 4pm PDT, Wed. 11th July
Reminder: this Office Hours hangout is today: Wed., 11th July, at 4pm Pacific time. -Amy On 10 July 2012 10:28, Amy Unruh a...@google.com wrote: hi all, We will have an App Engine office hours G+ hangout on this Wed., 11th July, at 4pm Pacific time (23:00 UTC, 9:00 Thu in Sydney, 8:00 in Tokyo :). We'll do a review of the Cloud-related news from Google I/O, and have time for general discussion/questions. Visit this event to find the link to the hangout when it starts up: https://developers.google.com/live/shows/ahNzfmdvb2dsZS1kZXZlbG9wZXJzcg4LEgVFdmVudBjOu4UDDA/ Submit questions via Google Moderator: https://www.google.com/moderator/#15/e=1faeact=1faeac.43 -Amy -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en.
Re: [google-appengine] Endpoints section in the control panel?
The Java command line tool is shipped in the current SDK in $SDK/bin/endpoints.sh. The Python version isn't currently in the SDK. You can also use the latest version of the Google Plugin for Eclipse if you're working on a Java backend. Thanks, Dan On Tue, Jul 10, 2012 at 8:49 PM, Kyle Finley kylefin...@gmail.com wrote: Perfect, that's what I was hoping. How are the Discovery docs created? I suspect that there is a program that takes the annotated code (python / java) and creates the document? Where would one find this tool? I apologize if it is in the SDK. I couldn't find it. - Kyle On Jul 10, 2012, at 8:10 PM, Dan Holevoet wrote: Hi Kyle, Discovery documents *are* served for all Endpoints (at your_app_id.appspot.com/_ah/apis/discovery/v1/apis) just like Google-authored APIs. We also provide a local version of the discovery doc (as a file) when you do local development so you don't have to push to production to test your Endpoint. The local discovery doc is used to generate the Objective-C library. The Go generator would use the local file as well. (Of course, you can point them to the live discovery doc if you'd like to.) So, I think we're offering what you want. Apologies if my explanation is (or was) confusing. I'm happy to elaborate further. Thanks, Dan On Tue, Jul 10, 2012 at 4:11 PM, Kyle Finley kylefin...@gmail.com wrote: Hi Dan, Thank you for your reply. If you're just interested in generating a client library for an Endpoint that you can consume in Go, you can probably use the gen.gohttp://code.google.com/p/google-api-go-client/source/browse/google-api-go-generator/gen.gofile provided by the Go client library. I must include the disclaimer that this is entirely untested, the generated library may make assumptions which are incorrect for non-Google-authored APIs. Yeah this is partly was I was interested in. I must admin I'm not completely clear on how endpoints works. I thought that you might have a tools that created discovery https://developers.google.com/discovery/docs from annotated code. That's was what I was interested in looking at. I'm sure I can create something similar. I just thought looking at some code might help. I think this whole process has a lot potential as an open source standard. Everyone is struggling for consistency In there API's. You guys have done a lot good work with the discovery api and the tools that parse I would like to see that spread. Thank you, Kyle If you want to write a backend in Go, there are probably some server-side details that would block your implementation. Thanks, Dan -- You received this message because you are subscribed to the Google Groups Google App Engine group. To view this discussion on the web visit https://groups.google.com/d/msg/google-appengine/-/ArnV9WAiW0MJ. To post to this group, send email to google-appengine@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en. -- Dan Holevoet Google Developer Relations -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en. -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en. -- Dan Holevoet Google Developer Relations -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en.
Re: [google-appengine] Re: Spring MVC + GAE = slow startup
None specifically. We're just not using spring. Spring's not really a framework as much as it is a set of tools and glue for building things (although I guess spring-mvc is a framework). Our app is built mostly on jersey, objectify and backbone.js On Wednesday, July 11, 2012 7:46:37 AM UTC-4, Joakim wrote: Out of interest, which framework(s) are you using to replace Spring? On Tuesday, July 10, 2012 10:02:17 PM UTC+2, Rick Mangi wrote: FWIW I gave up on spring for that same reason. All of the reflection, scanning and parsing of XML or annotations is just not designed for an environment like appengine. It's meant for apps that start up once and stay up for a long time. On Tuesday, July 10, 2012 8:19:44 AM UTC-4, rerngvit yanggratoke wrote: I read it earlier somewhere that Spring MVC is kind of too heavy for GAE. The cold start time will be much lower if you use some other lightweight libraries. However, this means you could not take advantages of mature and advanced framework like Spring anyway. On Tue, Jul 10, 2012 at 2:13 PM, Jordi P.S. planad...@gmail.com wrote: Hello guys, Tomas, I'm facing the same issues as you. I have Spring MVC with velocity and one single JSP and I get startup times from 50+ seconds. I started applying the measures you guys propose and I don't get major reductions. Have you fixed this issue already? Jordi. On Tuesday, April 10, 2012 3:47:57 PM UTC+2, jon wrote: Just did one quick test, it takes about 24 s to spin up an instance. I guess all this code we've written has added about 10 s of startup time. So far it hasn't been a problem because we reserve instances. Oh there's one other trick that we do. We map /_ah/warmup to a servlet that exercises as much of our stack as possible. We use Spring 3.0.x. Our lib folder shows 47 individual JARs (including our own). Yikes! On Apr 10, 6:12 am, Tomas tomas.ada...@gmail.com wrote: Hi, I've done all of those already and nothing helps. As I said - the simplest MVC with just minimal spring libraries (excluding jpa/jdo app engine lib) with one JSP with only htm in it tak 13+ secs to startup. I've spent two days trying to optimize everything (annotations support, scanning, repacking to bigger jars) but nothing helps. 1) what version of spring do you use (maybe the 3.1 is causing troubles) 2) how many other libraries did you have in your application Thanks. On Monday, 9 April 2012 17:48:35 UTC+12, jon wrote: Our app is also Spring-based. We did some optimisation about a year ago. Don't really remember how quickly we got our app to start. I think it was in the ballpark of the 13s result you got. 50s is too long. Here's what we've done: * combine our own classes into one JAR * reduce dependencies as much as possible (exclude unnecessary JPA/JDO dependencies if you're not using them) * turn off Spring autoscan (we list Controllers explicitly, but we do use annotations inside the Controllers) * use static instead of dynamic JSP includes when possible * turn on JSP precompilation * there may be a few other things I'm forgetting On Apr 8, 6:16 pm, Tomas tomas.ada...@gmail.com wrote: Hi guys, I've decided to convert my servlet/jdo based app engine app to spring mvc (the current app is starting to limit me on doing quick changes/improvements in the code and as I have quite good experience with spring on standard non cloud platforms I've decided to give it a go). So I've put together project including: - Spring + Spring MVC + Apache Velocity - ehcache + spring-annotations for ehcache + own decorators/interceptors for appengine memcached - objectify - some other util classes ie jsoup, commons (util, baens, logging, codec), gdata The lib directory contains ~42MB of jars (including appengine libraries which makes ~25MB) After deploy, the app takes 50+ seconds to start (sometime the first request get killed after 60 seconds and another app is started) - I've read some articles about speeding up the spring on gae and decided to do another little test. I've created testing app containing only spring + spring mvc with one controller (no other beans, but had to keep the annotation scan enabled for mvc mapping - but disabled the component scan). The controller simply forwards to JSP file with text. Deployed and the page got displayed after 13 seconds. I knew the Spring with all proxies and scanning is not optimal for GAE but I wasn't expecting this at all - it seems like the app have issues with simple loading the libraries as I can see how the memory of instance is growing by 1 MB per second. I've tried to: 1) merge jars into 3-4 bigger ones
Re: [google-appengine] Endpoints section in the control panel?
Dan, Thank you. On Jul 11, 2012, at 1:22 PM, Dan Holevoet wrote: The Java command line tool is shipped in the current SDK in $SDK/bin/endpoints.sh. The Python version isn't currently in the SDK. You can also use the latest version of the Google Plugin for Eclipse if you're working on a Java backend. Thanks, Dan On Tue, Jul 10, 2012 at 8:49 PM, Kyle Finley kylefin...@gmail.com wrote: Perfect, that's what I was hoping. How are the Discovery docs created? I suspect that there is a program that takes the annotated code (python / java) and creates the document? Where would one find this tool? I apologize if it is in the SDK. I couldn't find it. - Kyle On Jul 10, 2012, at 8:10 PM, Dan Holevoet wrote: Hi Kyle, Discovery documents are served for all Endpoints (at your_app_id.appspot.com/_ah/apis/discovery/v1/apis) just like Google-authored APIs. We also provide a local version of the discovery doc (as a file) when you do local development so you don't have to push to production to test your Endpoint. The local discovery doc is used to generate the Objective-C library. The Go generator would use the local file as well. (Of course, you can point them to the live discovery doc if you'd like to.) So, I think we're offering what you want. Apologies if my explanation is (or was) confusing. I'm happy to elaborate further. Thanks, Dan On Tue, Jul 10, 2012 at 4:11 PM, Kyle Finley kylefin...@gmail.com wrote: Hi Dan, Thank you for your reply. If you're just interested in generating a client library for an Endpoint that you can consume in Go, you can probably use the gen.go file provided by the Go client library. I must include the disclaimer that this is entirely untested, the generated library may make assumptions which are incorrect for non-Google-authored APIs. Yeah this is partly was I was interested in. I must admin I'm not completely clear on how endpoints works. I thought that you might have a tools that created discovery docs from annotated code. That's was what I was interested in looking at. I'm sure I can create something similar. I just thought looking at some code might help. I think this whole process has a lot potential as an open source standard. Everyone is struggling for consistency In there API's. You guys have done a lot good work with the discovery api and the tools that parse I would like to see that spread. Thank you, Kyle If you want to write a backend in Go, there are probably some server-side details that would block your implementation. Thanks, Dan -- You received this message because you are subscribed to the Google Groups Google App Engine group. To view this discussion on the web visit https://groups.google.com/d/msg/google-appengine/-/ArnV9WAiW0MJ. To post to this group, send email to google-appengine@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en. -- Dan Holevoet Google Developer Relations -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en. -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en. -- Dan Holevoet Google Developer Relations -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en. -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en.
[google-appengine] Re: Task Guarantee?
Having no insight about you logic... Agree with other responses that while the timing of a task queue task may be unpredictable, the final execution of said task is pretty certain. If you want more control, then perhaps a pull queue may be an option since you should easily find a means to record/log what is in the queue, and delete the queue items only after your logic has ascertained its final disposition is proven (e.g. completed a put() operation without exception). HTH -stevep On Wednesday, July 11, 2012 4:55:37 AM UTC-7, Richard Arrano wrote: Hello, I have been designing my app with the notion in mind that even named tasks may execute more than once, but I only recently came to realize that a task may not execute at all. I have a task that operates on a subset of my entities and it's absolutely imperative that all members of this subset get processed and saved. I originally thought named tasks would help accomplish this, but this does not seem to be the case. Is there any way to guarantee that I process these entities? I also considered a cron job that checks every couple of minutes to check for unprocessed entities(since a cron job will kick off the initial task) but I was hoping for a slightly more elegant solution. Thanks, Richard -- You received this message because you are subscribed to the Google Groups Google App Engine group. To view this discussion on the web visit https://groups.google.com/d/msg/google-appengine/-/Y6aDa5c8YFEJ. To post to this group, send email to google-appengine@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en.
Re: [google-appengine] Re: Datastore Indexes stuck. vacuum_indexes didn't fix it
Hi Udi, I'm looking into it. -- Takashi On Wed, Jul 11, 2012 at 5:02 PM, Udi h Bauman dibauna...@gmail.com wrote: We're having the same problem - indices are stuck Building vacuum didn't help. Anything else we can do? The app id is: apps-poc (HRD). Thanks, Udi On Sunday, June 10, 2012 10:46:49 AM UTC+3, Gwyn Howell wrote: I have datastore indexes stuck in Building status. I have tried deleting my index.yaml and running vacuum_indexes. That deleted all the other indexes, but not the 5 stuck in Building status. How do I fix this? (Googlers, my App ID is phoenixhealth-dms!) Thanks -- You received this message because you are subscribed to the Google Groups Google App Engine group. To view this discussion on the web visit https://groups.google.com/d/msg/google-appengine/-/GP4yuYP_otsJ. To post to this group, send email to google-appengine@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en. -- Takashi Matsuo -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en.
Re: [google-appengine] Re: Datastore Indexes stuck. vacuum_indexes didn't fix it
Hi Udi, Now you're good to go. Sorry for the inconvenience. -- Takashi On Thu, Jul 12, 2012 at 6:08 AM, Takashi Matsuo tmat...@google.com wrote: Hi Udi, I'm looking into it. -- Takashi On Wed, Jul 11, 2012 at 5:02 PM, Udi h Bauman dibauna...@gmail.comwrote: We're having the same problem - indices are stuck Building vacuum didn't help. Anything else we can do? The app id is: apps-poc (HRD). Thanks, Udi On Sunday, June 10, 2012 10:46:49 AM UTC+3, Gwyn Howell wrote: I have datastore indexes stuck in Building status. I have tried deleting my index.yaml and running vacuum_indexes. That deleted all the other indexes, but not the 5 stuck in Building status. How do I fix this? (Googlers, my App ID is phoenixhealth-dms!) Thanks -- You received this message because you are subscribed to the Google Groups Google App Engine group. To view this discussion on the web visit https://groups.google.com/d/msg/google-appengine/-/GP4yuYP_otsJ. To post to this group, send email to google-appengine@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en. -- Takashi Matsuo -- Takashi Matsuo -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en.
Re: [google-appengine] deploying the App Engine: I just can seem to do it!
Hi, Google Cloud Endpoints is currently a trusted tester feature. In order to be able to deploy your Endpoint to your appspot app, you will need to be whitelisted. Please complete this form: endpoints-trusted-tester.appspot.comif you haven't already. Thanks, Dan On Mon, Jul 9, 2012 at 9:19 AM, Boy Lenssen boylens...@gmail.com wrote: I have been trying all day to get something running with App Engine. I use the Google plugin. I generate the cloud endpoints. Running it locally and addressing it via curl, no problems... Then I deploy it, use the registered application id on appspot and go to: appl_id.appspot.com/_ah/api/discovery/v1/apis/my_api/v1/rest, and it says : Not found! I was following this video until 20 minutes, http://www.youtube.com/watch?v=v9TG7OzsZqQ and did the above again, but still..the same... what am I doing wrong...do I need to change a setting on appspot? -- You received this message because you are subscribed to the Google Groups Google App Engine group. To view this discussion on the web visit https://groups.google.com/d/msg/google-appengine/-/4Fu02n47IZoJ. To post to this group, send email to google-appengine@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en. -- Dan Holevoet Google Developer Relations -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en.
[google-appengine] Channel API and compression
In here https://developers.google.com/appengine/kb/general#compression it says that compression is used by default if the browser supports it and requires no modification to the application. My question is, does that apply to Channel API messages too? I have an application that needs to send large JSON (text) data through a persistent connection and I'm hoping to get it through faster by having it compressed. Cheers! -- You received this message because you are subscribed to the Google Groups Google App Engine group. To view this discussion on the web visit https://groups.google.com/d/msg/google-appengine/-/95L3hHAieIgJ. To post to this group, send email to google-appengine@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en.
[google-appengine] Backend latency
I've been doing some load testing on Python27 frontends and backends and getting some fairly awful results. My test is a simple no-op that returns a 4-letter constant string. I hit frontend (F1) and backend (B1) versions with ab -c 100. The frontend peaks at about 140 requests/sec per instance. I've set the min latency to 15s to keep the # of instances to a minimum, which seems to work. It never goes above 2 instances and one of them makes the 140 mark. The admin instances page shows avg latency of 10-15ms. However, app logs show varying latency #s ranging from 30ms to 250ms. The backend (single instance) peaks under 80 requests/sec. The admin/instances page shows avg latency of 100ms. App logs show latencies of 3000-4000ms. Questions and observations: 1) What does the avg latency # on admin/instances mean? Presumably this is time spent executing my code and not time spent in the pending queue. Except that no-ops don't take 100ms to execute. What else is part of that number? 2) Request time in the app logs includes time spent waiting in the pending queue, right? It's the actual wall-clock time between when the request enters Google and leaves Google? 3) Why are backends so abysmally slow? If a backend is supposed to be *at all* useful for maintaining in-memory game state for more than five players, it needs to be able to process a high QPS rate. That's fine, a couple synchronized operations on an in-memory data structure are lightning fast - a couple ms. But where does this mysterious 100ms come from? It destroys throughput. 4) Try this exercise: Deploy a frontend handler that does nothing but urlfetch to a backend no-op. Run it. It usually takes *hundreds* of milliseconds. I've verified this with appstats. Huh? I can make urlfetches to Europe faster. Jeff -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, send email to google-appengine@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en.
[google-appengine] Re: Task Guarantee?
I also have not seen tasks fail to run, but I found this thread: http://stackoverflow.com/questions/5583813/google-app-engine-added-task-goes-missing Specifically, the part that says: Tasks are not guaranteed to be executed in the order they arrive, and they are not guaranteed to be executed exactly once. In some cases, a single task may be executed *more than once or not at all*. I haven't seen the behavior myself, and perhaps the commenter is not correct, but it occurred to me that I need to account for the possibility. I believe I will have a status flag a la Per's suggestion. Thanks! -Richard -- You received this message because you are subscribed to the Google Groups Google App Engine group. To view this discussion on the web visit https://groups.google.com/d/msg/google-appengine/-/SYVZ0ymSYoYJ. To post to this group, send email to google-appengine@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en.
[google-appengine] separating files for Handler
AppEngine for Python SDK latest Hi, I'm trying to separate the program into many files. In order to do so, I need to put import handler for handler.py file if I'm correct. But for some reason, I keep getting errors. main.py is import webapp2 import os import jinja2 import handler template_dir = os.path.join(os.path.dirname(__file__), 'templates') jinja_env = jinja2.Environment(loader = jinja2.FileSystemLoader(template_dir), autoescape = True) def render_str(template, **params): t = jinja_env.get_template(template) return t.render(params) def make_secure_val(val): return '%s|%s' % (val, hmac.new(secret, val).hexdigest()) def check_secure_val(secure_val): val = secure_val.split('|')[0] if secure_val == make_secure_val(val): return val class MainPage(Handler): def get(self): self.response.headers['Content-Type'] = 'text/plain' self.render('front.html', wikis = wikis[0], time = int(diff.total_seconds())) app = webapp2.WSGIApplication([('/?', MainPage)], debug=True) handler.py is import webapp2 class Handler(webapp2.RequestHandler): def write(self, *a, **kw): self.response.out.write(*a, **kw) def render_str(self, template, **params): params['user'] = self.user return render_str(template, **params) def render(self, template, **kw): self.write(self.render_str(template, **kw)) def set_secure_cookie(self, name, val): cookie_val = make_secure_val(val) self.response.headers.add_header( 'Set-Cookie', '%s=%s; Path=/' % (name, cookie_val)) def read_secure_cookie(self, name): cookie_val = self.request.cookies.get(name) return cookie_val and check_secure_val(cookie_val) def login(self, user): self.set_secure_cookie('user_id', str(user.key().id())) def logout(self): self.response.headers.add_header('Set-Cookie', 'user_id=; Path=/') def initialize(self, *a, **kw): webapp2.RequestHandler.initialize(self, *a, **kw) uid = self.read_secure_cookie('user_id') self.user = uid and User.by_id(int(uid)) This raises an error, File /Users/ishidasouichi/appengine_python/chword/main.py, line 28, in module class MainPage(Handler): NameError: name 'Handler' is not defined INFO 2012-07-12 04:40:05,243 dev_appserver.py:2904] GET /favicon.ico HTTP/1.1 500 - Looks like main.py is not reading handler.py at all. Could anyone point out the mistake I am making? soujiro0725 -- You received this message because you are subscribed to the Google Groups Google App Engine group. To view this discussion on the web visit https://groups.google.com/d/msg/google-appengine/-/V4KbCWSLNBsJ. To post to this group, send email to google-appengine@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en.