[google-appengine] Are re-directs failing on App Engine?
I have an old app that has been re-directing traffic to another App Engine app for a couple of years. It just stopped working this morning. The re-directs return 404s. Going directly to the re-direct location works correctly, however. Is there any indication that there is an infrastructure problem? The re-direct appears to work from the logs in the original app. Greg -- You received this message because you are subscribed to the Google Groups Google App Engine group. To unsubscribe from this group and stop receiving emails from it, send an email to google-appengine+unsubscr...@googlegroups.com. To post to this group, send email to google-appengine@googlegroups.com. Visit this group at http://groups.google.com/group/google-appengine. To view this discussion on the web visit https://groups.google.com/d/msgid/google-appengine/802d4066-e6f3-4bb6-a249-c394369916c3%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
[google-appengine] Deploy times are painfully slow
The App Engine deploy times have been brutally slow over the last 12 hours. It's on the order of minutes - typically stalling right up front as well as after the Deployment successful state. Greg -- 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/-/mIZFnCxmSWAJ. 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] copying data from appengine datastore admin to my dev server. failed with status 401
It's probably worth adding one more detail. I can't access the Datastore Admin when I'm logged in with app's owner account (I think this is a known bug). I can only access the admin page from another developer account. That may be contributing to the access problem. Thoughts? -- 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/-/gZzBV_kvEWUJ. 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] copying data from appengine datastore admin to my dev server. failed with status 401
I found the issue I had been prefixing my app ID in the appengine_config.py file with 's~', which is the norm for bulkloader operations even though it isn't documented. It looks like that prefix isn't required in this case. -- 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/-/9BEc539DTIsJ. 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] copying data from appengine datastore admin to my dev server. failed with status 401
I'm seeing the same error between two production apps. (1) Duplicate application (2) Upload code to new application (2) Enable datastore admin on new app (3) Use copy to another app on the original app This results in a 401... Fetch to https://smsmybus-test.appspot.com/_ah/remote_api failed with status 401 -- 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/-/ts2XKPovQvMJ. 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: Outbound emails are getting marked as spam by SpamCop today
huh. not sure why my post didn't have a 'body' to it. i wrote like Shakespeare :) but it disappeared!? an example appid is 'apodemail' it's worth pointing out that the problem only appeared for one day. thanks! greg On Dec 2, 7:48 pm, Ikai Lan (Google) ikai.l+gro...@google.com wrote: We can. Can you email me any more information about the application ID or email header information? -- Ikai Lan Developer Programs Engineer, Google App Engine Blogger:http://googleappengine.blogspot.com Reddit:http://www.reddit.com/r/appengine Twitter:http://twitter.com/app_engine On Tue, Nov 30, 2010 at 12:34 PM, Greg Tracy gtr...@gmail.com wrote: Multiple emails are getting bounced back today as marked as spam by SpamCop. The following is a sample description in one of those emails... Technical details of temporary failure: Google tried to deliver your message, but it was rejected by the recipient domain. We recommend contacting the other email provider for further information about the cause of this error. The error that the other server returned was: 554 554 5.7.1 Service unavailable; Client host [209.85.214.198] blocked using bl.spamcop.net; Blocked - see http://www.spamcop.net/bl.shtml?209.85.214.198(state 14). Can the App Engine team help facilitate the conversation with SpamCop and/or identify the spammy app that caused us to get put on the list? An app ID that is suffering from this now (although I'm sure there are others) apodemail Thanks. Greg -- 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-appeng...@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.comgoogle-appengine%2bunsubscr...@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-appeng...@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] Outbound emails are getting marked as spam by SpamCop today
Multiple emails are getting bounced back today as marked as spam by SpamCop. The following is a sample description in one of those emails... Technical details of temporary failure: Google tried to deliver your message, but it was rejected by the recipient domain. We recommend contacting the other email provider for further information about the cause of this error. The error that the other server returned was: 554 554 5.7.1 Service unavailable; Client host [209.85.214.198] blocked using bl.spamcop.net; Blocked - see http://www.spamcop.net/bl.shtml?209.85.214.198 (state 14). Can the App Engine team help facilitate the conversation with SpamCop and/or identify the spammy app that caused us to get put on the list? An app ID that is suffering from this now (although I'm sure there are others) apodemail Thanks. Greg -- 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-appeng...@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: 500 Server Error on https://appengine.google.com
I too am getting 500 errors on app uploads... -- 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-appeng...@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: seeking CPU billing clarification
Nick... I'm using the wall clock time reported in the logs. This isn't something I'm measuring myself. Isn't that the number right after the return code (200)? I'd love to find the documentation for the quota package. It's something I've been looking for for a long time. I've never seen it anywhere. :) Thanks. On Aug 13, 8:09 am, Nick Johnson (Google) nick.john...@google.com wrote: Hi Greg, On Thu, Aug 12, 2010 at 10:14 PM, Greg Tracy gtr...@gmail.com wrote: Here's an example of what I mean by those metrics being inversely proportional. Each of these tasks are doing the identical work and ran two minutes apart. 08-12 01:42PM 11.860 /crawl/prefetch/03 200 6227ms 108803cpu_ms 107111api_cpu_ms 08-12 01:39PM 47.970 /crawl/prefetch/03 200 23846ms 25655cpu_ms 23770 api_cpu_ms The following are my measurements using the quota package and they represent the end-to-end quota times inside my handler for these respective calls... 08-12 01:42PM 18.056 total CPU cycles 5584, total API cycles 128534 08-12 01:40PM 11.517 total CPU cycles 4132, total API cycles 28524 From an analysis perspective, I have two challenges: 1. I cannot reconcile the wall clock time for these slow requests How are you measuring the wall clock times? 2. I cannot trust the metrics from the quota package since I can't see clarity about what they actually represent You're comparing milliseconds on the one hand to CPU megacycles on the other. The quota package contains functions to convert between the two. -Nick Johnson On Aug 12, 12:55 pm, Greg Tracy gtr...@gmail.com wrote: In fact, there may even be a bug... I see that the cpu_ms and api_cpu_ms numbers are inversely proportional to the wall clock times in the log. I can't make heads or tails from the existing reporting tools. Please save me from this insanity... :) On Aug 12, 12:27 pm, Greg Tracy gtr...@gmail.com wrote: Excellent... Now how do I reconcile the times reported by the quota package with the cpu_ms and api_cpu_ms times reported in the log? They don't appear to be the same. On Aug 12, 10:50 am, Nick Johnson (Google) nick.john...@google.com wrote: Hi Greg, On Thu, Aug 12, 2010 at 4:36 PM, Greg Tracy gtr...@gmail.com wrote: Is the billable CPU Time quota a combination of the cpu_ms cycles and the api_cpu_ms cycles (as seen in the log file)? Yes. And if this is the case, can I assume that cpu_ms is measuring the time my code is executing - unblocked from remote calls? Yes. -Nick Johnson -- 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-appeng...@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.comgoogle-appengine%2Bunsubscrib e...@googlegroups.comgoogle-appengine%2Bunsubscrib e...@googlegroups.com . For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en. -- Nick Johnson, Developer Programs Engineer, App Engine Google Ireland Ltd. :: Registered in Dublin, Ireland, Registration Number: 368047 Google Ireland Ltd. :: Registered in Dublin, Ireland, Registration Number: 368047 -- 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-appeng...@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.comgoogle-appengine%2Bunsubscrib e...@googlegroups.com . For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en. -- Nick Johnson, Developer Programs Engineer, App Engine Google Ireland Ltd. :: Registered in Dublin, Ireland, Registration Number: 368047 Google Ireland Ltd. :: Registered in Dublin, Ireland, Registration Number: 368047 -- 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-appeng...@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: Hoping to understand the difference between CPU Time and Datastore CPU Time
Circling back on this thread to report on a couple of outcomes. First, from a numbers standpoint... I saw massive improvement when I started doing batch puts. - On average, a batch put of 472 relatively small entities takes 2,200 megacycles - On average, a batch put of 363 entities takes 1,900 megacycles Second, total CPU cycles for this job (of parsing a text file, creating entities, and storing them) is a fraction of the API cycle time. 3,000 v. 98,000 megacycles Also, I did a write-up on my experience with this analysis process. If you're interested, check it out and share your thoughts and experiences. http://www.gregtracy.com/adventures-in-performance-tuning-on-google-ap Now... how do I manage the API time?! On Jul 21, 2:26 am, Robert Kluin robert.kl...@gmail.com wrote: Hey Greg, Yeah puts are relatively expensive. Doing a batch put is about the only way to reduceCPUtime, but of course that does basically nothing forAPItime. I always like to see benchmarks and related discussions. Look forward to your results. Robert On Jul 20, 2010, at 13:51, Greg Tracy gtr...@gmail.com wrote: Thanks for the input, Robert. After more performance tuning, I've been able to eliminate the DeadlineExceeded errors. But I still have a hard time scaling the app since the put calls are so expensive. Over thousands of request handler calls, I quickly eat upCPUquota (free and paid). Going back to the original question, I'm still unsure how the quota math is working. I'm in the process of creating an-to-end performance model of these calls and will post the results. On Jul 15, 4:40 pm, Robert Kluin robert.kl...@gmail.com wrote: Greg, If you are having issues with long write times, there are two common options you may consider: smaller batches and transactional tasks. I have some code that does batch processing, I set it up to search for the maximum batch size that is currently succeeding. Basically I slowly increase my batch size until I am getting deadline exceeded warnings then I drop back down adjust my 'growth factor' and repeat the processes. This seems to keep my batches running very close to the upper limit without too many deadline exceeded exceptions. The other approach I have used it to offload some of the writes to other background tasks. I write a group of entities, then send another handler another block of entities to write. This has been working well for me too. Robert On Thu, Jul 15, 2010 at 5:22 PM, Greg Tracy gtr...@gmail.com wrote: I just started using AppStats for the first time - very nice package! However, it didn't reveal any glaring problems. But it did help validate my belief that I was using the memcache effectively. I've been using the 'quota' package to find costly operations, and I did discover a bug in my measurement. I was starting the clock in the wrong spot so I have found some new areas to optimize. Will work on that now... but I'm still not confident I can compensate for the long write times. Thanks! On Jul 14, 10:46 pm, Robert Kluin robert.kl...@gmail.com wrote: If you have not already, take a look at AppStats. Perhaps you can find a way to improve performance. You may also want to read through some of the datastore articles in the docs to be sure you are minimizing resource usage. Robert On Wed, Jul 14, 2010 at 7:24 PM, Greg Tracy gtr...@gmail.com wrote: Not for me... I set a budget and immediately started paying. Not thrilled about this and may need to start a new thread asking for advice on datastore contention... Thanks. On Jul 14, 5:57 pm, Nate Bauernfeind nate.bauernfe...@gmail.com wrote: I have been. On Wed, Jul 14, 2010 at 5:37 PM, Greg Tracy gtr...@gmail.com wrote: Does this imply that I can go over theCPUTime quota and not pay for it? On Jul 14, 5:26 pm, Nate Bauernfeind nate.bauernfe...@gmail.com wrote: The DataStoreCPUtime is included in totalCPUtime. To take advantage of free datastorecputime you need to increase yourcpu-usage quota. When I loaded a bunch of initial test data into the datastore I got tons of deadline exceeded errors, though I assumed it was cause I was trying to stuff a lot of data in there all at once. Nate On Wed, Jul 14, 2010 at 5:24 PM, Greg Tracy gtr...@gmail.com wrote: I've been adding some new datastore-intensive features to an app and am blowing through the CPUTime quota. While my understanding is that the DatastoreCPUTime quotas have been lifted while the App Engine team continues to work on the performance, I can't figure out why these are mutually exclusive metrics in my app. When I measure thecpucyclesbeing consumed in the new features, it is almost exclusively in the db.put() call. In fact, 50% of the time, I'm getting DeadlineExceeded errors before the put call even returns. Is the DatastoreCPUTime also counted in the CPUTime? If so
[google-appengine] seeking CPU billing clarification
Is the billable CPU Time quota a combination of the cpu_ms cycles and the api_cpu_ms cycles (as seen in the log file)? And if this is the case, can I assume that cpu_ms is measuring the time my code is executing - unblocked from remote calls? -- 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-appeng...@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: SMS
I would recommend using Twilio's SMS API. I've built multiple GAE apps with Twilio integration. They even have Python and Java libraries to make integration easier. Cost is $.03 for each message (inbound as well as outbound). On Aug 12, 10:14 am, Nikita Srivastava nikisri...@gmail.com wrote: I am not sure how this works in the rest of the world, but in the subcontinent, it's the user who pays. Sometimes the services charge a very nominal monthly charge, but usually there is no per SMS charge for the app developer. I think it works similarly elsewhere too. On Thu, Aug 12, 2010 at 6:07 PM, Massimiliano massimiliano.pietr...@gmail.com wrote: I can't understand, can I receive sms for free with this service? Regards Max 2010/8/12 Martin Webb spydre...@yahoo.co.uk All of the reputable sms gateways do two way messaging - you will need to set up an account at saywww.clickatel.com. their api will forward all messages to a url say yourapp/sms/inbox using a post. All you need to do is set-up a url handler to read the form post in the traditional way and this will return the message etc. Very simple. Regards *Martin Webb* The information contained in this email is confidential and may contain proprietary information. It is meant solely for the intended recipient. Access to this email by anyone else is unauthorised. If you are not the intended recipient, any disclosure, copying, distribution or any action taken or omitted in reliance on this, is prohibited and may be unlawful. No liability or responsibility is accepted if information or data is, for whatever reason corrupted or does not reach its intended recipient. No warranty is given that this email is free of viruses. The views expressed in this email are, unless otherwise stated, those of the author -- *From:* Massimiliano massimiliano.pietr...@gmail.com *To:* google-appengine@googlegroups.com *Sent:* Thu, 12 August, 2010 11:23:50 *Subject:* [google-appengine] SMS Dear All, is there a way to receive a SMS in a App? I need my clients to send me a info by their mobile and forward it to an email address (or a mobile). (Can you inform me if there is method to send sms too?) Regards Massimiliano -- My email: massimiliano.pietr...@gmail.com My Google Wave: massimiliano.pietr...@googlewave.com -- 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-appeng...@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.comgoogle-appengine%2Bunsubscrib e...@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-appeng...@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.comgoogle-appengine%2Bunsubscrib e...@googlegroups.com . For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en. -- My email: massimiliano.pietr...@gmail.com My Google Wave: massimiliano.pietr...@googlewave.com -- 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-appeng...@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.comgoogle-appengine%2Bunsubscrib e...@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-appeng...@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: seeking CPU billing clarification
Excellent... Now how do I reconcile the times reported by the quota package with the cpu_ms and api_cpu_ms times reported in the log? They don't appear to be the same. On Aug 12, 10:50 am, Nick Johnson (Google) nick.john...@google.com wrote: Hi Greg, On Thu, Aug 12, 2010 at 4:36 PM, Greg Tracy gtr...@gmail.com wrote: Is the billable CPU Time quota a combination of the cpu_ms cycles and the api_cpu_ms cycles (as seen in the log file)? Yes. And if this is the case, can I assume that cpu_ms is measuring the time my code is executing - unblocked from remote calls? Yes. -Nick Johnson -- 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-appeng...@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.comgoogle-appengine%2Bunsubscrib e...@googlegroups.com . For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en. -- Nick Johnson, Developer Programs Engineer, App Engine Google Ireland Ltd. :: Registered in Dublin, Ireland, Registration Number: 368047 Google Ireland Ltd. :: Registered in Dublin, Ireland, Registration Number: 368047 -- 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-appeng...@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: seeking CPU billing clarification
In fact, there may even be a bug... I see that the cpu_ms and api_cpu_ms numbers are inversely proportional to the wall clock times in the log. I can't make heads or tails from the existing reporting tools. Please save me from this insanity... :) On Aug 12, 12:27 pm, Greg Tracy gtr...@gmail.com wrote: Excellent... Now how do I reconcile the times reported by the quota package with the cpu_ms and api_cpu_ms times reported in the log? They don't appear to be the same. On Aug 12, 10:50 am, Nick Johnson (Google) nick.john...@google.com wrote: Hi Greg, On Thu, Aug 12, 2010 at 4:36 PM, Greg Tracy gtr...@gmail.com wrote: Is the billable CPU Time quota a combination of the cpu_ms cycles and the api_cpu_ms cycles (as seen in the log file)? Yes. And if this is the case, can I assume that cpu_ms is measuring the time my code is executing - unblocked from remote calls? Yes. -Nick Johnson -- 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-appeng...@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.comgoogle-appengine%2Bunsubscrib e...@googlegroups.com . For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en. -- Nick Johnson, Developer Programs Engineer, App Engine Google Ireland Ltd. :: Registered in Dublin, Ireland, Registration Number: 368047 Google Ireland Ltd. :: Registered in Dublin, Ireland, Registration Number: 368047 -- 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-appeng...@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: seeking CPU billing clarification
Here's an example of what I mean by those metrics being inversely proportional. Each of these tasks are doing the identical work and ran two minutes apart. 08-12 01:42PM 11.860 /crawl/prefetch/03 200 6227ms 108803cpu_ms 107111api_cpu_ms 08-12 01:39PM 47.970 /crawl/prefetch/03 200 23846ms 25655cpu_ms 23770 api_cpu_ms The following are my measurements using the quota package and they represent the end-to-end quota times inside my handler for these respective calls... 08-12 01:42PM 18.056 total CPU cycles 5584, total API cycles 128534 08-12 01:40PM 11.517 total CPU cycles 4132, total API cycles 28524 From an analysis perspective, I have two challenges: 1. I cannot reconcile the wall clock time for these slow requests 2. I cannot trust the metrics from the quota package since I can't see clarity about what they actually represent On Aug 12, 12:55 pm, Greg Tracy gtr...@gmail.com wrote: In fact, there may even be a bug... I see that the cpu_ms and api_cpu_ms numbers are inversely proportional to the wall clock times in the log. I can't make heads or tails from the existing reporting tools. Please save me from this insanity... :) On Aug 12, 12:27 pm, Greg Tracy gtr...@gmail.com wrote: Excellent... Now how do I reconcile the times reported by the quota package with the cpu_ms and api_cpu_ms times reported in the log? They don't appear to be the same. On Aug 12, 10:50 am, Nick Johnson (Google) nick.john...@google.com wrote: Hi Greg, On Thu, Aug 12, 2010 at 4:36 PM, Greg Tracy gtr...@gmail.com wrote: Is the billable CPU Time quota a combination of the cpu_ms cycles and the api_cpu_ms cycles (as seen in the log file)? Yes. And if this is the case, can I assume that cpu_ms is measuring the time my code is executing - unblocked from remote calls? Yes. -Nick Johnson -- 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-appeng...@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.comgoogle-appengine%2Bunsubscrib e...@googlegroups.com . For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en. -- Nick Johnson, Developer Programs Engineer, App Engine Google Ireland Ltd. :: Registered in Dublin, Ireland, Registration Number: 368047 Google Ireland Ltd. :: Registered in Dublin, Ireland, Registration Number: 368047 -- 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-appeng...@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] CPU Time measurements
I'd like to better understand the CPU time measurements in app engine. As I've been profiling an app, I've started to see inconsistencies in the various metrics. I'm striving to improve every number that's in my control, but still lack a fundamental understanding of what's being measured, the difference between various CPU times and how they are reflected in the quotas. For example, I expected to be able to measure cpu time and api time (via the quota package) at the end of a request handler and draw some conclusions about the cpu_ms and api_cpu_ms times reported in the admin log for each handler request. Specifically, I expected that ratio of the quota measurements and the log time be consistent for every call, but I haven't seen that for the cpu numbers. The experiment went as follows... class MainHandler(webapp.RequestHandler) { def get(self): try: # do all the expensive magic... finally: end_api = quota.get_request_api_cpu_usage() end_cpu = quota.get_request_cpu_usage() logging.warning(total API cycles %s, total CPU cycles %s % (end_api, end_cpu)) return When I check the ratio of these metrics with those reported in the admin log over mutliple calls, it's perfectly stable for the API numbers at 1.2. When I check the ratio for the CPU metric, it's much more eratic... 0.111 0.131 0.124 0.050 0.028 0.023 0.024 0.112 0.048 0.052 0.147 0.057 0.048 0.040 0.138 0.024 0.027 0.030 0.023 0.036 0.025 Why is that? How can I get more granularity with the CPU usage statistics? Can I measure the quotas through the handler and guarantee that I'm measure just a datastore CPU time vs. non-datastore CPU time? Thanks! -- 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-appeng...@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: CPU Time measurements
It's worth pointing out the two other peculiarities... 1. When a DeadlineExceeded exception is thrown, the API usage is reported as zero and the CPU usage is very low - lower than other requests that don't hit the deadline. 2. When a DeadlineExceeded exception is thrown, the cpu_ms time reported in the log are also oddly low even though the wall clock time is at 30 secs. Just trying to understand what's being measured and where all my time is going... Thanks! On Jul 22, 10:17 pm, Greg Tracy gtr...@gmail.com wrote: I'd like to better understand the CPU time measurements in app engine. As I've been profiling an app, I've started to see inconsistencies in the various metrics. I'm striving to improve every number that's in my control, but still lack a fundamental understanding of what's being measured, the difference between various CPU times and how they are reflected in the quotas. For example, I expected to be able to measure cpu time and api time (via the quota package) at the end of a request handler and draw some conclusions about the cpu_ms and api_cpu_ms times reported in the admin log for each handler request. Specifically, I expected that ratio of the quota measurements and the log time be consistent for every call, but I haven't seen that for the cpu numbers. The experiment went as follows... class MainHandler(webapp.RequestHandler) { def get(self): try: # do all the expensive magic... finally: end_api = quota.get_request_api_cpu_usage() end_cpu = quota.get_request_cpu_usage() logging.warning(total API cycles %s, total CPU cycles %s % (end_api, end_cpu)) return When I check the ratio of these metrics with those reported in the admin log over mutliple calls, it's perfectly stable for the API numbers at 1.2. When I check the ratio for the CPU metric, it's much more eratic... 0.111 0.131 0.124 0.050 0.028 0.023 0.024 0.112 0.048 0.052 0.147 0.057 0.048 0.040 0.138 0.024 0.027 0.030 0.023 0.036 0.025 Why is that? How can I get more granularity with the CPU usage statistics? Can I measure the quotas through the handler and guarantee that I'm measure just a datastore CPU time vs. non-datastore CPU time? Thanks! -- 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-appeng...@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: Hoping to understand the difference between CPU Time and Datastore CPU Time
Thanks for the input, Robert. After more performance tuning, I've been able to eliminate the DeadlineExceeded errors. But I still have a hard time scaling the app since the put calls are so expensive. Over thousands of request handler calls, I quickly eat up CPU quota (free and paid). Going back to the original question, I'm still unsure how the quota math is working. I'm in the process of creating an-to-end performance model of these calls and will post the results. On Jul 15, 4:40 pm, Robert Kluin robert.kl...@gmail.com wrote: Greg, If you are having issues with long write times, there are two common options you may consider: smaller batches and transactional tasks. I have some code that does batch processing, I set it up to search for the maximum batch size that is currently succeeding. Basically I slowly increase my batch size until I am getting deadline exceeded warnings then I drop back down adjust my 'growth factor' and repeat the processes. This seems to keep my batches running very close to the upper limit without too many deadline exceeded exceptions. The other approach I have used it to offload some of the writes to other background tasks. I write a group of entities, then send another handler another block of entities to write. This has been working well for me too. Robert On Thu, Jul 15, 2010 at 5:22 PM, Greg Tracy gtr...@gmail.com wrote: I just started using AppStats for the first time - very nice package! However, it didn't reveal any glaring problems. But it did help validate my belief that I was using the memcache effectively. I've been using the 'quota' package to find costly operations, and I did discover a bug in my measurement. I was starting the clock in the wrong spot so I have found some new areas to optimize. Will work on that now... but I'm still not confident I can compensate for the long write times. Thanks! On Jul 14, 10:46 pm, Robert Kluin robert.kl...@gmail.com wrote: If you have not already, take a look at AppStats. Perhaps you can find a way to improve performance. You may also want to read through some of the datastore articles in the docs to be sure you are minimizing resource usage. Robert On Wed, Jul 14, 2010 at 7:24 PM, Greg Tracy gtr...@gmail.com wrote: Not for me... I set a budget and immediately started paying. Not thrilled about this and may need to start a new thread asking for advice on datastore contention... Thanks. On Jul 14, 5:57 pm, Nate Bauernfeind nate.bauernfe...@gmail.com wrote: I have been. On Wed, Jul 14, 2010 at 5:37 PM, Greg Tracy gtr...@gmail.com wrote: Does this imply that I can go over the CPU Time quota and not pay for it? On Jul 14, 5:26 pm, Nate Bauernfeind nate.bauernfe...@gmail.com wrote: The DataStore CPU time is included in total CPU time. To take advantage of free datastore cpu time you need to increase your cpu-usage quota. When I loaded a bunch of initial test data into the datastore I got tons of deadline exceeded errors, though I assumed it was cause I was trying to stuff a lot of data in there all at once. Nate On Wed, Jul 14, 2010 at 5:24 PM, Greg Tracy gtr...@gmail.com wrote: I've been adding some new datastore-intensive features to an app and am blowing through the CPU Time quota. While my understanding is that the Datastore CPU Time quotas have been lifted while the App Engine team continues to work on the performance, I can't figure out why these are mutually exclusive metrics in my app. When I measure the cpu cycles being consumed in the new features, it is almost exclusively in the db.put() call. In fact, 50% of the time, I'm getting DeadlineExceeded errors before the put call even returns. Is the Datastore CPU Time also counted in the CPU Time? If so, are there plans to extend the quota limits there as well? I'm interested in finding some resources that track performance metrics on App Engine. I don't know what to expect in terms of performance when I store, for example, 400 entities in the data store. Are there resources where folks are contributing their metrics for others to see? Thanks. -- 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.comgoogle-appengine%2Bunsubscrib e...@googlegroups.comgoogle-appengine%2Bunsubscrib e...@googlegroups.com . For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en. -- You received this message because you
[google-appengine] Re: Analytics via log file?
When I do analytics like this, I use the task queue to generate records in the datastore. Then I create the special admin handlers to render the analysis tools inside the browser. It's far easier to parse the data that way and you can access the results in real-time from anywhere. I'm not generating millions of records per day, but I have found this to be effective for my projects. On Jul 15, 10:20 am, Mark mar...@gmail.com wrote: Hi, I was looking at the discussion about analytics here: http://groups.google.com/group/google-appengine/browse_thread/thread/... I'm in the same situation - there's a few pieces of data that I'd like to track, and storing them in the datastore is going to introduce extra complexity to my app, eat up more of the 100 quota index limit, etc. I can just make specialized log statements for the events I'm interested in, then download the log once a day and parse it to do my analysis. I just wonder two things: 1) Will emitting more log statements slow down my app? For example, I log a statement everytime I serve a particular page. If millions of people are viewing the page, will all those log statements be a significant drain? 2) Scalability - downloading the log once a day and parsing it - is anyone doing this already and can speak on their experience? I'm a bit worried that if the daily log gets really big, trying to download and parse it each day might become unrealistic. I'm not sure if there are any other alternatives? Thanks -- 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-appeng...@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: Hoping to understand the difference between CPU Time and Datastore CPU Time
I just started using AppStats for the first time - very nice package! However, it didn't reveal any glaring problems. But it did help validate my belief that I was using the memcache effectively. I've been using the 'quota' package to find costly operations, and I did discover a bug in my measurement. I was starting the clock in the wrong spot so I have found some new areas to optimize. Will work on that now... but I'm still not confident I can compensate for the long write times. Thanks! On Jul 14, 10:46 pm, Robert Kluin robert.kl...@gmail.com wrote: If you have not already, take a look at AppStats. Perhaps you can find a way to improve performance. You may also want to read through some of the datastore articles in the docs to be sure you are minimizing resource usage. Robert On Wed, Jul 14, 2010 at 7:24 PM, Greg Tracy gtr...@gmail.com wrote: Not for me... I set a budget and immediately started paying. Not thrilled about this and may need to start a new thread asking for advice on datastore contention... Thanks. On Jul 14, 5:57 pm, Nate Bauernfeind nate.bauernfe...@gmail.com wrote: I have been. On Wed, Jul 14, 2010 at 5:37 PM, Greg Tracy gtr...@gmail.com wrote: Does this imply that I can go over the CPU Time quota and not pay for it? On Jul 14, 5:26 pm, Nate Bauernfeind nate.bauernfe...@gmail.com wrote: The DataStore CPU time is included in total CPU time. To take advantage of free datastore cpu time you need to increase your cpu-usage quota. When I loaded a bunch of initial test data into the datastore I got tons of deadline exceeded errors, though I assumed it was cause I was trying to stuff a lot of data in there all at once. Nate On Wed, Jul 14, 2010 at 5:24 PM, Greg Tracy gtr...@gmail.com wrote: I've been adding some new datastore-intensive features to an app and am blowing through the CPU Time quota. While my understanding is that the Datastore CPU Time quotas have been lifted while the App Engine team continues to work on the performance, I can't figure out why these are mutually exclusive metrics in my app. When I measure the cpu cycles being consumed in the new features, it is almost exclusively in the db.put() call. In fact, 50% of the time, I'm getting DeadlineExceeded errors before the put call even returns. Is the Datastore CPU Time also counted in the CPU Time? If so, are there plans to extend the quota limits there as well? I'm interested in finding some resources that track performance metrics on App Engine. I don't know what to expect in terms of performance when I store, for example, 400 entities in the data store. Are there resources where folks are contributing their metrics for others to see? Thanks. -- 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.comgoogle-appengine%2Bunsubscrib e...@googlegroups.comgoogle-appengine%2Bunsubscrib e...@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-appeng...@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.comgoogle-appengine%2Bunsubscrib e...@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-appeng...@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group athttp://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-appeng...@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] Hoping to understand the difference between CPU Time and Datastore CPU Time
I've been adding some new datastore-intensive features to an app and am blowing through the CPU Time quota. While my understanding is that the Datastore CPU Time quotas have been lifted while the App Engine team continues to work on the performance, I can't figure out why these are mutually exclusive metrics in my app. When I measure the cpu cycles being consumed in the new features, it is almost exclusively in the db.put() call. In fact, 50% of the time, I'm getting DeadlineExceeded errors before the put call even returns. Is the Datastore CPU Time also counted in the CPU Time? If so, are there plans to extend the quota limits there as well? I'm interested in finding some resources that track performance metrics on App Engine. I don't know what to expect in terms of performance when I store, for example, 400 entities in the data store. Are there resources where folks are contributing their metrics for others to see? Thanks. -- 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-appeng...@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: Hoping to understand the difference between CPU Time and Datastore CPU Time
Does this imply that I can go over the CPU Time quota and not pay for it? On Jul 14, 5:26 pm, Nate Bauernfeind nate.bauernfe...@gmail.com wrote: The DataStore CPU time is included in total CPU time. To take advantage of free datastore cpu time you need to increase your cpu-usage quota. When I loaded a bunch of initial test data into the datastore I got tons of deadline exceeded errors, though I assumed it was cause I was trying to stuff a lot of data in there all at once. Nate On Wed, Jul 14, 2010 at 5:24 PM, Greg Tracy gtr...@gmail.com wrote: I've been adding some new datastore-intensive features to an app and am blowing through the CPU Time quota. While my understanding is that the Datastore CPU Time quotas have been lifted while the App Engine team continues to work on the performance, I can't figure out why these are mutually exclusive metrics in my app. When I measure the cpu cycles being consumed in the new features, it is almost exclusively in the db.put() call. In fact, 50% of the time, I'm getting DeadlineExceeded errors before the put call even returns. Is the Datastore CPU Time also counted in the CPU Time? If so, are there plans to extend the quota limits there as well? I'm interested in finding some resources that track performance metrics on App Engine. I don't know what to expect in terms of performance when I store, for example, 400 entities in the data store. Are there resources where folks are contributing their metrics for others to see? Thanks. -- 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-appeng...@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.comgoogle-appengine%2Bunsubscrib e...@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-appeng...@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: Hoping to understand the difference between CPU Time and Datastore CPU Time
Not for me... I set a budget and immediately started paying. Not thrilled about this and may need to start a new thread asking for advice on datastore contention... Thanks. On Jul 14, 5:57 pm, Nate Bauernfeind nate.bauernfe...@gmail.com wrote: I have been. On Wed, Jul 14, 2010 at 5:37 PM, Greg Tracy gtr...@gmail.com wrote: Does this imply that I can go over the CPU Time quota and not pay for it? On Jul 14, 5:26 pm, Nate Bauernfeind nate.bauernfe...@gmail.com wrote: The DataStore CPU time is included in total CPU time. To take advantage of free datastore cpu time you need to increase your cpu-usage quota. When I loaded a bunch of initial test data into the datastore I got tons of deadline exceeded errors, though I assumed it was cause I was trying to stuff a lot of data in there all at once. Nate On Wed, Jul 14, 2010 at 5:24 PM, Greg Tracy gtr...@gmail.com wrote: I've been adding some new datastore-intensive features to an app and am blowing through the CPU Time quota. While my understanding is that the Datastore CPU Time quotas have been lifted while the App Engine team continues to work on the performance, I can't figure out why these are mutually exclusive metrics in my app. When I measure the cpu cycles being consumed in the new features, it is almost exclusively in the db.put() call. In fact, 50% of the time, I'm getting DeadlineExceeded errors before the put call even returns. Is the Datastore CPU Time also counted in the CPU Time? If so, are there plans to extend the quota limits there as well? I'm interested in finding some resources that track performance metrics on App Engine. I don't know what to expect in terms of performance when I store, for example, 400 entities in the data store. Are there resources where folks are contributing their metrics for others to see? Thanks. -- 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.comgoogle-appengine%2Bunsubscrib e...@googlegroups.comgoogle-appengine%2Bunsubscrib e...@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-appeng...@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.comgoogle-appengine%2Bunsubscrib e...@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-appeng...@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: Tasks Queues still manual in 1.3.4?
I'm using the App Engine Launcher on XP and it works for me. On May 31, 7:24 pm, hawkett hawk...@gmail.com wrote: Slight possibility - looks like both Ryan and Nick are using the app engine launcher, which is a mac only application that contains a copy of the SDK. Are any of the people reporting it working using the app engine launcher? I'm on mac, but is has been a while since I actually ran my apps with the launcher - choosing instead to download to download the linux SDK. You guys could try that and see if you notice any improvement. Perhaps the SDK inside the launcher isn't quite right. Unlikely, but something to test out. Cheers, Colin On May 29, 6:49 am, Nick npd...@gmail.com wrote: I'm in California (7-8 hours behind UTC) and also have Ryan's problem. Tasks don't run automatically on the dev server, which is very frustrating and as Ryan reported I still see the message Tasks will not run automatically in the SDK console. I'm using Python and the GoogleAppEngineLauncher 1.3.4.794, SDK version: release: 1.3.4, timestamp: 1272392128, api_versions: ['1']. Any thoughts on why some of us aren't seeing this new feature? Thanks, Nick On May 28, 8:50 am, Tim Hoffman zutes...@gmail.com wrote: So am I (8 hours) and auto task running works fine, Rgds T On May 28, 10:32 pm, djidjadji djidja...@gmail.com wrote: I'm ahead a few hours of UTC and for me the automatic task queue works. I have not modified the 1.3.4 SDK code. 2010/5/27 Kenneth goo...@kmacleod.ie: The problem with the task not running automatically is because of this bug: http://code.google.com/p/googleappengine/issues/detail?id=2508 Basically it works fine in Mountain View, California, but not for anyone who is ahead of UTC since the eta will be in the future. Solution as described in the bug report is replace line 414 in taskqueue.py: def __determine_eta(eta=None, countdown=None, now=datetime.datetime.now) with def __determine_eta(eta=None, countdown=None, now=datetime.datetime.utcnow) Hope that helps. On May 22, 9:10 pm, andy stevko andy.ste...@gmail.com wrote: I see auto run tasks all the time in my dev environment. I thought the docs just were not up to date. I'm using the latest eclipse plugin. On May 22, 2010 12:42 PM, Ryan Weber ryan.we...@gmail.com wrote: Strange, because that's not what is happening for me. I have to still manually run them. Can anyone think of any reason why mine would still be manual? When I saw all the features of the 1.3.4 release, I was most looking forward to the auto-run of tasks, so I wouldn't have to click run every time, but alas, no luck yet... -- 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-appeng...@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] Limiting Cron jobs by time of day
Is there a syntax for cron jobs that limits when they run? For example, can I specify that a cron job run every every hour between 9am and 9pm? schedule: every 1 hour [except 10pm-8am] Is there a different, verbose syntax that lists every time it runs rather than using some kind of exception clause? -- 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-appeng...@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: Outbound email failure today
This is still an issue for me... On Apr 17, 7:26 am, toh momot...@gmail.com wrote: Not a help, but I just wanted to say that I am having the same issue... Greg Tracy greg.tr...@att.net wrote: I had the same problem again today... There haven't been any code changes, and not all emails are failing. Any help is appreciated. Greg On Apr 15, 4:28 pm, Greg Tracy greg.tr...@att.net wrote: Curious to know if there was a problem with the GAEemailserver this afternoon. 88 (of roughly 675) emails sent out by my app today bounced back. The bounced emails all had messages with text similar to the following... The error that the other server returned was: 501 501 3t0fhswohbkkpanp.cajlhjcc.wncujaburwdbrc@1rf- H_fBpZ96xCRX.apphosting.bounces.google.com: malformed address: _fBpZ96xCRX.apphosting.bounces.g may not follow 3t0fhswohbkkpanp.cajlhjcc.wncujaburwdbrc@1rf-h (state 13). Thoughts? -- You received this message because you are subscribed to the Google Groups Google App Engine group. To post to this group, sendemailto google-appeng...@googlegroups.com. To unsubscribe from this group, sendemailto google-appengine+unsubscr...@googlegroups.com. For more options, visit this group athttp://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, sendemailto google-appeng...@googlegroups.com. To unsubscribe from this group, sendemailto google-appengine+unsubscr...@googlegroups.com. For more options, visit this group athttp://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-appeng...@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: Outbound email failure today
I had the same problem again today... There haven't been any code changes, and not all emails are failing. Any help is appreciated. Greg On Apr 15, 4:28 pm, Greg Tracy greg.tr...@att.net wrote: Curious to know if there was a problem with the GAE email server this afternoon. 88 (of roughly 675) emails sent out by my app today bounced back. The bounced emails all had messages with text similar to the following... The error that the other server returned was: 501 501 3t0fhswohbkkpanp.cajlhjcc.wncujaburwdbrc@1rf- H_fBpZ96xCRX.apphosting.bounces.google.com: malformed address: _fBpZ96xCRX.apphosting.bounces.g may not follow 3t0fhswohbkkpanp.cajlhjcc.wncujaburwdbrc@1rf-h (state 13). Thoughts? -- 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-appeng...@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] Outbound email failure today
Curious to know if there was a problem with the GAE email server this afternoon. 88 (of roughly 675) emails sent out by my app today bounced back. The bounced emails all had messages with text similar to the following... The error that the other server returned was: 501 501 3t0fhswohbkkpanp.cajlhjcc.wncujaburwdbrc@1rf- H_fBpZ96xCRX.apphosting.bounces.google.com: malformed address: _fBpZ96xCRX.apphosting.bounces.g may not follow 3t0fhswohbkkpanp.cajlhjcc.wncujaburwdbrc@1rf-h (state 13). Thoughts? -- 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-appeng...@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] Accessing user account information through the users object
Why is that the users object returned for the logged in user isn't being populated with ALL of the details for that's user's account? Specifically, there is odd behavior for the nickname. Gmail accounts seem to pull out the name in front of '@gmail.com' as the nickname, but other logins - that are valid Google accounts - will use the entire email rather than the real name of that user. Why isn't the built-in API providing better access to the actual account data? Am I required to implement the Google Account API (http:// code.google.com/apis/accounts/) to get the real information about the user? Thanks! -- 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-appeng...@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: Accessing user account information through the users object
What I'd like access to is everything inside the account profile. There is a real name for google acounts. Even non-gmail google accounts. I'm surprised the users object doesn't give me access to this so I was wondering what others were doing. Do I need to implement the Google Account API? This seems like it would be a common problem from app engine developers that are leveraging the google accounts infrastructure for their apps. On Mar 19, 10:37 am, 风笑雪 kea...@gmail.com wrote: Nickname is the name of a Google account. When you login to any Google services with a Google account, you can type the entire email or just the user name of your Gmail account. It's a litter convenient for the Gmail user, so dose in GAE. If you really want the email address, you can call email() method instead. -- keakon 2010/3/19 Greg Tracy g...@gregtracy.com: Why is that the users object returned for the logged in user isn't being populated with ALL of the details for that's user's account? Specifically, there is odd behavior for the nickname. Gmail accounts seem to pull out the name in front of '@gmail.com' as the nickname, but other logins - that are valid Google accounts - will use the entire email rather than the real name of that user. Why isn't the built-in API providing better access to the actual account data? Am I required to implement the Google Account API (http:// code.google.com/apis/accounts/) to get the real information about the user? Thanks! -- 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-appeng...@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group athttp://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-appeng...@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: unable to update my app (authentication issue)
I'm able to update some of my other apps, but I still can't update the 'apodemail' app. As I look at the list of developers listed in the admin panel for each of my apps, there is clearly a disconnect. Some apps have multiple entries with the same email address. Some apps have no administrators listed. Just developers. I would appreciate it if someone on the app engine team could look at this. I believe something got disconnected when the email address for the google account was changed. Thanks. On Mar 18, 1:59 pm, Greg Tracy g...@gregtracy.com wrote: Since changing the email address on my Google account, I have not been able to update my application. Command line and SDK updates fail with the following... Password for greg@hidden.com: Invalid username or password. Error 401: --- begin server output --- Must authenticate first. --- end server output --- 2010-03-18 13:57:32 (Process exited with code 1) Is this a caching issue in app engine? The email was changed yesterday afternoon... This is happening for the app, apodemail.appspot.com Thanks. -- 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-appeng...@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: unable to update my app (authentication issue)
update... when i add a new developer to the app, i am able to run update on the app when i authenticate using the new user. however, the app is functionally broken at the moment because it can't send email. i've tried setting the sender using the owner of the app as well as the new developer account noted above, but neither of them work. the mail.send() call will fail with the following... InvalidSenderError: Unauthorized sender this is now much worse then simply an update problem. my app is now broken. On Mar 18, 9:23 pm, Greg Tracy g...@gregtracy.com wrote: I'm able to update some of my other apps, but I still can't update the 'apodemail' app. As I look at the list of developers listed in the admin panel for each of my apps, there is clearly a disconnect. Some apps have multiple entries with the same email address. Some apps have no administrators listed. Just developers. I would appreciate it if someone on the app engine team could look at this. I believe something got disconnected when the email address for the google account was changed. Thanks. On Mar 18, 1:59 pm, Greg Tracy g...@gregtracy.com wrote: Since changing the email address on my Google account, I have not been able to update my application. Command line and SDK updates fail with the following... Password for greg@hidden.com: Invalid username or password. Error 401: --- begin server output --- Must authenticate first. --- end server output --- 2010-03-18 13:57:32 (Process exited with code 1) Is this a caching issue in app engine? The email was changed yesterday afternoon... This is happening for the app, apodemail.appspot.com Thanks. -- 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-appeng...@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: appcfg.py error
just to verify... have you actually run the appcfg updater to upload your modified application? you'll need to update your app with the new app.yaml as well as uploading the loader script. the only way to do that is to first run appcfgy.py update dir. THEN you can run the uploader. On Mar 2, 10:03 am, pkhoosh pkho...@gmail.com wrote: I moved the remote_api handler to the top of my app.yaml file, but I got the sameappcfg.pyerror. Just to clarify, when I call C:\Program Files (x86)\Google\google_appengine pythonappcfg.pyupload_data --config_file=DataStoreLoader.py --filename=stimulus_set.csv --kind=DataStore face-eval --has_header I am callingappcfg.pywith the config_file in my app-directory, which is face-eval in this case (a subdirectory in google_appengine). Also, the file that I want to uplpoad, stimulus_set.csv is also in the face-eval app directory, along with the DataStoreLoader class. The $PYTHON_LIB variable is at the head of the directory structure pointing the handler in app.yaml. I'm not sure if that variable is being interpreted correctly, causing the problem. I appreciate your help. On Mar 1, 7:01 pm, Eli Jones eli.jo...@gmail.com wrote: Is the remote_api handler at the very top of your app.yaml? if there is something like: - url: /.* script: myscript Above the remote_api handler.. then it won't work.On Mon, Mar 1, 2010 at 8:43 PM, pkhoosh pkho...@gmail.com wrote: I am trying to upload a csv file to a data store. I uploaded my app.yaml file with the following: - url: /remote_api script: $PYTHON_LIB/google/appengine/ext/remote_api/handler.py login: admin I wrote a python handler in my application directory (DataStoreLoader.py). However, I get the following when I upload: C:\Program Files (x86)\Google\google_appenginepythonappcfg.py upload_data --config_file=DataStoreLoader.py -- filename=stimulus_set.csv --kind=DataStore face-eval --has_header Application: face-eval; version: 1. Usage:appcfg.py[options] upload_data directory appcfg.py:error: You must have google.appengine.ext.remote_api.handler assigned to an endpoint in app.yaml, or provide the url of the handler via the 'url' opt ion. Any help? -- 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-appeng...@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.comgoogle-appengine%2bunsubscr...@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-appeng...@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] Microsoft emails are bouncing
Over the last week, emails sent from my app to Microsoft accounts - hotmail, msn, live, etc. - are bouncing. --- 550 550 SC-004 Mail rejected by Windows Live Hotmail for policy reasons. A block has been placed against your IP address because we have received complaints concerning mail coming from that IP address. --- I recognize that this is not something the GAE team can control directly, but I'm hopeful that GAE can work with Microsoft's postmaster services on our behalf to come up with a solution. Thanks. -- 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-appeng...@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] Session cookies and the dev environment
I'm curious as to why the session cookie for google account sessions is different between the development server and production. I'd also like to know if there are abstractions/workarounds for this so I don't have to keep modifying my client code. Here's what I've found... - On the development server, the session cookie name is dev_appserver_login. - On the production server, there are five cookies created for the domain... __utmb __utmc __utma __utmz ACSID Are there App Engine resources that cover this architecture? Thanks! -- 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-appeng...@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: GAE tools poll
I use Eclipse with PydDev. I'd like to see the dev environment round out the tools for local debugging. Specifically, I'd like a turn-key solution for running cron jobs and a sendmail stub. -- 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-appeng...@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: Struggling to Upload a CSV file to AppEngine Datastore
i believe a syntax error refers to an invalid command line argument. can you copy and paste the command with all its arguments here in this thread? On Nov 17, 12:20 pm, Benjamin Mayo wondersofthebr...@googlemail.com wrote: The commandline reported SyntaxError: invalid syntax. i've uploaded bulk elements via csv multiple times and the instructions worked perfectly. I'm sure they did, and I am sure this is my error, not the docs. Luckily, this does not apply personally anymore - I ended up doing something different - but I would love a response anyway, for future reference. On Nov 16, 7:47 pm, Greg Tracy greg.tr...@att.net wrote: what was the exact error or symptom? i'm reluctant to repeat the how- to guide. http://code.google.com/appengine/docs/python/tools/uploadingdata.html i've uploaded bulk elements via csv multiple times and the instructions worked perfectly. the sections you actually have to implement are: 1. setting up remote_api 2. creating loader classes 3. preparing your data then issue the following from the command line... appcfg.py upload_data --config_file=your loader script from step 2.py --filename=your CSV file.csv --kind=your db.Model class name app-directory On Nov 16, 11:43 am, Benjamin Mayo wondersofthebr...@googlemail.com wrote: Bear with me here. I have never used python at the *commandline* before. Ever. I have a .CSV file containing the database I would like to upload to my GAE datastore. I have followed the documentation provided, but the python shell keeps returning errors (syntax: update_data). Please can someone step me through how to import the CSV file into AppEngine. Thankyou for any help you can give, which - I promise - is greatly appreciated. -- 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-appeng...@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=.
[google-appengine] Re: Struggling to Upload a CSV file to AppEngine Datastore
what was the exact error or symptom? i'm reluctant to repeat the how- to guide. http://code.google.com/appengine/docs/python/tools/uploadingdata.html i've uploaded bulk elements via csv multiple times and the instructions worked perfectly. the sections you actually have to implement are: 1. setting up remote_api 2. creating loader classes 3. preparing your data then issue the following from the command line... appcfg.py upload_data --config_file=your loader script from step 2.py --filename=your CSV file.csv --kind=your db.Model class name app-directory On Nov 16, 11:43 am, Benjamin Mayo wondersofthebr...@googlemail.com wrote: Bear with me here. I have never used python at the *commandline* before. Ever. I have a .CSV file containing the database I would like to upload to my GAE datastore. I have followed the documentation provided, but the python shell keeps returning errors (syntax: update_data). Please can someone step me through how to import the CSV file into AppEngine. Thankyou for any help you can give, which - I promise - is greatly appreciated. -- 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-appeng...@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=.
[google-appengine] Create and adding Task objects is expensive
I've found that creating and adding Task objects is quite expensive. Consider the following... for u in users: task = Task(url='/emailqueue', params= {'email':u.email,'body':body}) task.add('emailqueue') Each user in this loop adds another 34.5 cpu usages. It is by far the most expensive operation I have. Right now, I don't think it will scale much higher than 300 loop iterations before I start running into timeouts. Is there a better way to do this? Thanks. --~--~-~--~~~---~--~~ 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: Managing DeadlineExceededError within the taskqueue
no... i was using the wrong import. thank you @djidjadji On Oct 29, 7:16 pm, djidjadji djidja...@gmail.com wrote: Did you include? from google.appengine.runtime import apiproxy_errors 2009/10/29 Greg Tracy greg.tr...@att.net: I tried to use the apiproxy_errors version but GAE couldn't find it during excecution... File /base/data/home/apps/apodemail/1.337377943281842397/main.py, line 191, in post except apiproxy_errors.DeadlineExceededError: NameError: global name 'apiproxy_errors' is not defined --~--~-~--~~~---~--~~ 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: The API call mail.Send() took too long to respond and was cancelled?
i hadn't tried that, but i did get it to work once i used the correct import statement... from google.appengine.runtime import apiproxy_errors On Oct 29, 5:33 pm, Joshua Smith joshuaesm...@charter.net wrote: Did you try catching all exceptions? except: logging.exception(... On Oct 29, 2009, at 5:36 PM, Greg Tracy wrote: To add to this problem is the fact that I can't adequately catch the exception and avoid the re-queueing of the task. More on that here... http://groups.google.com/group/google-appengine/browse_thread/thread/... On Oct 29, 2:17 pm, Joshua Smith joshuaesm...@charter.net wrote: Well that's not cool. Task queue did the same thing: Threw an exception, even though it actually queued the task. Perhaps Google is confused about what an exception is. Nick: How can I tell if the email was sent? I'd hate to blast a bunch of duplicate emails just because of some bogus error. Perhaps you should just increase the Timeout on this API to a limit that it can actually meet? -Joshua On Oct 29, 2009, at 2:32 PM, Greg Tracy wrote: I'm seeing quite a few as well. Although I do find that the emails get delivered regardless. On Oct 29, 11:22 am, Joshua Smith joshuaesm...@charter.net wrote: We're getting a surprising number of these errors: The API call mail.Send() took too long to respond and was cancelled. This is happening, for example, when we send an email to three people in the to: list. Billing is enabled in my app. Should I wrap the call to mail.send_mail with an a try/except/retry loop? -Joshua --~--~-~--~~~---~--~~ 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: The API call mail.Send() took too long to respond and was cancelled?
I'm seeing quite a few as well. Although I do find that the emails get delivered regardless. On Oct 29, 11:22 am, Joshua Smith joshuaesm...@charter.net wrote: We're getting a surprising number of these errors: The API call mail.Send() took too long to respond and was cancelled. This is happening, for example, when we send an email to three people in the to: list. Billing is enabled in my app. Should I wrap the call to mail.send_mail with an a try/except/retry loop? -Joshua --~--~-~--~~~---~--~~ 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: Managing DeadlineExceededError within the taskqueue
I tried to use the apiproxy_errors version but GAE couldn't find it during excecution... File /base/data/home/apps/apodemail/1.337377943281842397/main.py, line 191, in post except apiproxy_errors.DeadlineExceededError: NameError: global name 'apiproxy_errors' is not defined Thanks for your suggestions. On Oct 29, 3:37 am, djidjadji djidja...@gmail.com wrote: There are two definitions of DeadlineExceededError google/appengine/runtime/__init__.py class DeadlineExceededError(BaseException): Exception raised when the request reaches its overall time limit. Not to be confused with runtime.apiproxy_errors.DeadlineExceededError. That one is raised when individual API calls take too long. google/appengine/runtime/apiproxy_errors.py class DeadlineExceededError(Error): Raised by APIProxy calls if the call took too long to respond. 2009/10/29 Greg Tracy greg.tr...@att.net: I'm running an email distribution list that utilizes the taskqueue to send out emails to individuals recipients. Periodically, I'm getting DeadlineExceededError when the Mail.send() call doesn't return fast enough. (This alone would be nice to avoid, but that's for another day). File /base/python_lib/versions/1/google/appengine/api/ apiproxy_rpc.py, line 111, in CheckSuccess raise self.exception DeadlineExceededError: The API call mail.Send() took too long to respond and was cancelled. I've tried catching the exception without success. This is what I've tried... from google.appengine.runtime import DeadlineExceededError class EmailWorker(webapp.RequestHandler): def post(self): try: # send email message = mail.EmailMessage () # setup message properties... apod_message.send() except DeadlineExceededError: logging.info(DeadlineExceededError exception!?! Try to set status and return normally) self.response.clear() self.response.set_status(200) self.response.out.write(Task took to long for %s - BAIL! % email) Right now, this results in the task failing (no exception caught), but the mail message succeeding. Then the task gets re-queued and the recipient gets the message for the second time. Thoughts? --~--~-~--~~~---~--~~ 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: The API call mail.Send() took too long to respond and was cancelled?
To add to this problem is the fact that I can't adequately catch the exception and avoid the re-queueing of the task. More on that here... http://groups.google.com/group/google-appengine/browse_thread/thread/288966daaecf3d05/c70bfd5b7f3307ef#c70bfd5b7f3307ef On Oct 29, 2:17 pm, Joshua Smith joshuaesm...@charter.net wrote: Well that's not cool. Task queue did the same thing: Threw an exception, even though it actually queued the task. Perhaps Google is confused about what an exception is. Nick: How can I tell if the email was sent? I'd hate to blast a bunch of duplicate emails just because of some bogus error. Perhaps you should just increase the Timeout on this API to a limit that it can actually meet? -Joshua On Oct 29, 2009, at 2:32 PM, Greg Tracy wrote: I'm seeing quite a few as well. Although I do find that the emails get delivered regardless. On Oct 29, 11:22 am, Joshua Smith joshuaesm...@charter.net wrote: We're getting a surprising number of these errors: The API call mail.Send() took too long to respond and was cancelled. This is happening, for example, when we send an email to three people in the to: list. Billing is enabled in my app. Should I wrap the call to mail.send_mail with an a try/except/retry loop? -Joshua --~--~-~--~~~---~--~~ 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] Managing DeadlineExceededError within the taskqueue
I'm running an email distribution list that utilizes the taskqueue to send out emails to individuals recipients. Periodically, I'm getting DeadlineExceededError when the Mail.send() call doesn't return fast enough. (This alone would be nice to avoid, but that's for another day). File /base/python_lib/versions/1/google/appengine/api/ apiproxy_rpc.py, line 111, in CheckSuccess raise self.exception DeadlineExceededError: The API call mail.Send() took too long to respond and was cancelled. I've tried catching the exception without success. This is what I've tried... from google.appengine.runtime import DeadlineExceededError class EmailWorker(webapp.RequestHandler): def post(self): try: # send email message = mail.EmailMessage () # setup message properties... apod_message.send() except DeadlineExceededError: logging.info(DeadlineExceededError exception!?! Try to set status and return normally) self.response.clear() self.response.set_status(200) self.response.out.write(Task took to long for %s - BAIL! % email) Right now, this results in the task failing (no exception caught), but the mail message succeeding. Then the task gets re-queued and the recipient gets the message for the second time. Thoughts? --~--~-~--~~~---~--~~ 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: Taskqueue not following my rate limit
ah... makes perfect sense. thank you for this! On Oct 21, 7:23 am, David Symonds dsymo...@gmail.com wrote: On Tue, Oct 20, 2009 at 7:04 AM, Greg Tracy greg.tr...@att.net wrote: queue: - name: email-queue rate: 8/m bucket_size: 10 Do you understand the effect of the bucket_size parameter? I bet you probably want that to be 1 here. In short, imagine a bucket with apples in it. bucket_size controls the maximum number of apples that the bucket will hold. The rate does not refer to how fast the bucket is emptied, but how fast the bucket is refilled. When you want to run a task, the system waits until there is at least one apple in the bucket, removes the apple, and then runs the task. This has the effect that the initial bucket_size number of tasks will be attempted almost immediately any time there's been an extended break (the bucket has refilled), and it is only rate-limited when the bucket is empty. Making the bucket_size equal to 1 effectively forces the rate-limit to always be in effect. Dave. --~--~-~--~~~---~--~~ 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 -~--~~~~--~~--~--~---