[google-appengine] Mail to one admin
I want to use the send_mail_to_admins function -- but don't want all my admins receiving the message. Just the one(s) I want. Right now, even if I specify a "to" address, it still goes to all of them. 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.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en.
Re: [google-appengine] Hanging AJAX connections, and the 30 second deadline
If you're keeping your AJAX connections open for 25 seconds, once you get a bit of traffic you will probably hit the max concurrent request limit of 30, and any extra AJAX connections will either timeout or wait for other AJAX connections to close first before connecting to your App Engine app. Since you're sleeping for 5 seconds on the server side anyway, it'd be better to close the AJAX connection and move the 5 seconds sleep to the client/browser instead, then reestablish an AJAX connection after you wake (polling with client-side sleep instead of long-polling with server side sleep). According to the roadmap (http://code.google.com/appengine/docs/roadmap.html), there are plans to release "support for Browser Push (Comet) communication", which will hopefully remove the need for such workarounds and make the world a better place for our children, and our children's children. On 16 April 2010 03:22, eric maxey wrote: > I have a site that uses hanging AJAX connections that notify the > client when certain database changes happen. > > The server checks the database every 5 seconds, and if the change has > taken place, returns the data to the client. Otherwise, it keeps > looping. > > As it is, I need to re-establish this connection every 25 seconds, > because of the 30 second deadline imposed on google app engine. > > Is there any better way to do this? > > -- > 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. > > -- 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] Upgraded Dashboard Log Viewer is a pain
I am developing gadgets and robots for wave, so the only way to debug my code is thru appengine logs. But u seem to have changed the format of the log, in such a way that for viewing my debugging messages( Warning messages) i have to click on LOGS, and then select WARNING from the dropdown! Why oh why! -- 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] Hanging AJAX connections, and the 30 second deadline
I have a site that uses hanging AJAX connections that notify the client when certain database changes happen. The server checks the database every 5 seconds, and if the change has taken place, returns the data to the client. Otherwise, it keeps looping. As it is, I need to re-establish this connection every 25 seconds, because of the 30 second deadline imposed on google app engine. Is there any better way to do this? -- 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.
Re: [google-appengine] Youtube API
YouTube API discussion group here: http://groups.google.com/group/youtube-api-gdata/ Home page for YouTube Direct here: http://www.youtube.com/direct Project page for YouTube Direct API here: http://code.google.com/apis/youtube/ytdirect.html Architecture diagram here: http://code.google.com/p/youtube-direct/wiki/ArchitectureOverview YouTube Direct FAQ here: http://www.google.com/youtube/youtube-direct-faq.html How to get started page here: http://code.google.com/p/youtube-direct/wiki/GettingStarted hope this helps! -- wesley - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - "Core Python Programming", Prentice Hall, (c)2007,2001 "Python Fundamentals", Prentice Hall, (c)2009 http://corepython.com wesley.j.chun :: wesc+api-at-google-dot-com developer relations :: google app engine @app_engine :: googleappengine.blogspot.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.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en.
[google-appengine] Re: 400 bad request on production server, nothing in logs
anybody help? I have checked the issues about 400 bad request, but it looks like they are different cases. On 4月13日, 上午11时50分, kevin wrote: > Hi all, > > I setup a requirements-rlt.appspot.com app which providing web service > interface. > When I deployed it on production server, I got a error: > Error: 400 Bad Request: Your client has issued a malformed or illegal > request. > > the requirements-rlt is an app which providing web service. The > application(client)'s web address is:http://sdm.raylightech.com/usecase/, > when loading this URL, js code will initialize a /usecase/getlist/ request > to the application(client), then the client will send a GET request with > oauth signature in header to requirements-rlt app. > > The client will get a response with 400 Bad Request: Your client has issued > a malformed or illegal request. The client sent out a 500 error wrapped the > 400 error inside it: > > MissingSignature at /usecase/getlist/ > > 400 Bad Request > > Google Error > Bad Request > Your client has issued a malformed or illegal request. > > Request Method: GET > Request URL:http://localhost:8000/usecase/getlist/ > Exception Type: MissingSignature > Exception Value: > > (MissSignature is the wrong translate by client(app) for 400 bad request > error from requirements-rlt app) > > This process works well on development server. And the strange thing is no > log > for the GET request on appengine control panel. I have changed the client > to my pc, the same error generated. > > But for PUT request, it works well and logged correctly. > > For both client app and requirements-rlt app, oauth2 python library > used(which used httplib2) for signing oauth request and authentication. > > somebody give a hand? 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] urlfetch.Fetch() was explicitly cancelled
I got this error: The API call urlfetch.Fetch() was explicitly cancelled Thanks -- Jairo Vasquez Moreno Mentez Developer www.mentez.com Medellin - Colombia -- 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: Date time property in G Data Store error
Hi there! Mate I have tried every thing! 1. I even removed the header line of the csv file, kept just the values. when I did that...the error now is that the tuple object is not callable 2. Secondly, i even used google docs, same error. here is the one liner. **loaders.py** ('author_birthdate', lambda x: datetime.datetime.strptime(x, '%d/%m/ %Y').date()) **models.py** 1. ) author_birthdate = db.StringProperty() or 2. ) author_birthdate = db.DateProperty() i even tried author_birthdate = db.DateTimeProperty() **command used to upload data** appcfg.py upload_data --config_file=loaders.py --filename=del1.csv -- kind=new_delzad ray-tech I'm going exactly as per the tutorial, but the problem lies in the date format...which is where i am confused. Note: this same command worked brilliant when I passed the date as a string. look forward to your views on this one! regards Del On Apr 15, 4:52 pm, "Nick Johnson (Google)" wrote: > Hi Delzad, > > Can you provide a oneliner (datetime.datetime.striptime(...)) that > reproduces this behaviour? The problem is with date formatting, so it will > be useful to remove the extraneous issues of the bulkloader from the > equation. > > -Nick Johnson > > > > On Thu, Apr 15, 2010 at 1:46 AM, Delzad wrote: > > Hi Nick! > > > thanks for the post dear, > > > yes I did try to send in an example date..and it gave back that same > > string and said that the format did not match, and it inserted an > > extra set of Inverted quotes.. > > > I have a feeling it's something to do with my CSV file... > > > here is the code.. > > > ***loaders.py** > > > import datetime > > from google.appengine.ext import db > > from google.appengine.tools import bulkloader > > import models > > > class BookLoader(bulkloader.Loader): > > def __init__(self): > > bulkloader.Loader.__init__(self, 'Book', > > [('title', str), > > ('author', str), > > ('copyright_year', str), > > ('author_birthdate', lambda x: > > datetime.datetime.strptime(x, '%m/%d/%Y').date()), > > ]) > > > loaders = [BookLoader] > > > *models.py*** > > from google.appengine.ext import db > > > class Book(db.Model): > > title = db.StringProperty() > > author = db.StringProperty() > > copyright_year = db.StringProperty() > > author_birthdate = db.DateProperty() > > > **new_delzad.csv *** > > > title author copyright_year author_birthdate > > app_en Delzad 2010 12/25/2012 > > > ** ERROR MESSAGE** > > File "/usr/lib/python2.6/_strptime.py", line 325, in _strptime > > (data_string, format)) > > ValueError: time data "'author_birthdate'" does not match format '%m/ > > %d/%Y' > > [INFO ] Backing off due to errors: 1.0 seconds > > [INFO ] An error occurred. Shutting down... > > [ERROR ] Error in WorkerThread-0: time data "'author_birthdate'" > > does not match format '%m/%d/%Y' > > > these inverted commas, which i have entered in the loaders.py is the > > format which I am specifying right? > > > the csv file in Excel spreadsheet does not contain any inverted > > commas... > > > so this kind of leaves me a bit baffled..where could I be going wrong? > > > can i just remove the strptime thing and add just a simple date > > format? > > > thanks dear > > > regards > > > Delzad > > > On Apr 14, 3:09 pm, "Nick Johnson (Google)" > > wrote: > > > Hi Delzad, > > > > Can you provide sample data? Have you tried passing an example date > > directly > > > to datetime.datetime.strptime with that format string, to see if it > > works? > > > > -Nick Johnson > > > > On Wed, Apr 14, 2010 at 1:00 AM, Delzad wrote: > > > > Hi there! > > > > > Bit confused about the data stores ability to take in data. > > > > > i'm trying to upload a data value in the format, %m/%d/%Y, but i keep > > > > getting the error message: ValueError: time data 'Date' does not match > > > > format '%m/%d/%Y'. > > > > > My CSV file contains data in this exact same format. > > > > > here is the main bit of my loader file. > > > > > class loaders(bulkloader.Loader): > > > > def __init__(self): > > > > bulkloader.Loader.__init__(self, 'New_aviva', > > > > [('Date',lambda x: > > > > datetime.datetime.strptime(x, '%m/%d/%Y').date()), > > > > ('Open', int), > > > > ('high', int), > > > > ('low', int), > > > > ('close', int), > > > > ('volume', int), > > > > ('adjclose', int) > > > > ]) > > > > > Although I have managed to fix this error...if I take in the date > > > > property as a STRING, it works just fine, but then I have issues with > > > > the GQL in the data store, as I would not be able to access them in > > > > any order. > > > > > So i need to take in date as a DATE value. > >
[google-appengine] Re: Request per Second limitation (PLEASE)
Nick, I'm getting "Limited" in Requests and Secure Requests Quotas. Also pages are showing "Quota error" (not all times). I've tried to reduce requests. I just though you told me everything would scale :S Please what can I do. On Apr 14, 12:21 pm, "Nick Johnson (Google)" wrote: > Hi Jairo, > > If your average latency is low (below 1 second), you should be able to scale > up to any request load, as long as you provide the budget to support it. > > -Nick Johnson > > On Wed, Apr 14, 2010 at 5:37 PM, Jairo Vasquez wrote: > > > > > > > Hi, > > > I am managing 650 request per second. Can I start to manage 1200 > > request per second? > > > I need to know what my limits are, what can I do. > > > Should I use another solution or can GAE support this load? > > > Thanks > > > -- > > Jairo Vasquez Moreno > > Mentez Developer > >www.mentez.com > > Medellin - Colombia > > > -- > > 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 > 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] 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] Re: task queue timeouts
thx james, I saw that issue# and had starred already 1) this was just working yesterday 2) has the Task Queue been depreciated in favor of some (future) background worker scenario? (see last comment on that issue link). I'm in favor of this but it would be nice if that were available before they started throttling the TQ 3) I wonder if this is related to the removal of the Simultaneous Requests limit (http://code.google.com/appengine/kb/ general.html#activerequests) which seems to favor low latency request and penalizes long running ones (although if this is the case, I'm not how anyone can do anything meaningful with the Task Queue) cheers brian On Apr 15, 3:00 pm, James wrote: > Star this puppy > -http://code.google.com/p/googleappengine/issues/detail?id=2396 > > On Apr 15, 11:39 am, bFlood wrote: > > > > > is anyone else seeing a lot more Task Queue 10 seconds timeouts today? > > These tasks usually take about 10-15secs to complete and were running > > really fast yesterday. Billing enabled. > > > "Request was aborted after waiting too long to attempt to service your > > request. " > > /tasks/indexing 500 10026ms 0cpu_ms 0kb AppEngine-Google; (+http:// > > code.google.com/appengine) > > 0.1.0.2 -- 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: task queue timeouts
Star this puppy - http://code.google.com/p/googleappengine/issues/detail?id=2396 On Apr 15, 11:39 am, bFlood wrote: > is anyone else seeing a lot more Task Queue 10 seconds timeouts today? > These tasks usually take about 10-15secs to complete and were running > really fast yesterday. Billing enabled. > > "Request was aborted after waiting too long to attempt to service your > request. " > /tasks/indexing 500 10026ms 0cpu_ms 0kb AppEngine-Google; (+http:// > code.google.com/appengine) > 0.1.0.2 -- 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: Questions about request logs (their circular buffer, its size etc.)
Hey Ikai, thanks for the reply. Are you sure about the 90 day thing? I was reading a thread here where Nick Johnson suggested it was a fixed buffer size: http://groups.google.com/group/google-appengine/browse_thread/thread/faa52812efdbeaaa/a22d1a02a97e95df?lnk=gst&q=appengine+logs+circular+buffer#a22d1a02a97e95df In that case, the person asking seemed to be only able to keep 20 minutes of log data before old logs started to be overwritten (a busy site I guess!). Has something changed? Could you check out what the case actually is? If I might, I'd like to request if log related 'quotas' could be exposed and published, and expandable with money if possible! :) They're quite critical to an app I'm trying to plan, and while the current setup seems to be OK for my needs, the blindness to what's happening under the covers and what might happen going forward is a wee bit disconcerting. Cheers, On Apr 15, 6:48 pm, "Ikai L (Google)" wrote: > The last time I checked, we guaranteed 90 days of logs regardless of size. > This is subject to change, however. I don't know what size we will set, but > like many of our other products, it'll likely start at a number we think is > reasonable based on overall usage and trend upward. > > Anything is possible with regards to billed features - we just can't give an > ETA unless it's explicitly stated on the roadmap. > > > > > > On Wed, Apr 14, 2010 at 12:27 PM, peterk wrote: > > Reading some previous discussions and things alluded to therein, some > > questions cropped up. > > > I'm considering an application that quite fundamentally requires > > access to all its request logs. > > > So I guess I'd be recommended to use appcfg.py to periodically pull > > down the logs and append them to a txt file, or do whatever else I > > need to do to persist them. > > > In previous discussion I saw Google folks say that logs are stored in > > a circular buffer. Meaning if you had enough requests, they'd > > overwrite older requests. Meaning that if you had enough requests or > > were downloading the logs sufficiently infrequently, you might lose > > logs. > > > So question number 1: how big is the circular buffer for each > > application? > > > 2: Changes to that buffer size could detrimentally impact on my > > application if revised downward (silently in particular), so are there > > any guarantees that this buffer size won't be reduced in the future? > > > 3: Is there any possibility that this buffer could be exposed via the > > quota system so that an app could purchase a larger buffer size if it > > were helpful? > > > I'm flashing forward to a busy site and somewhat worrying about how > > frequently I'll have to download the logs, and whether it would be > > feasible to download them with a certain frequency anyway (e.g. if the > > log download time is quite long - as I've found it can be). Any > > answers or advice would be very welcome. 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 > e...@googlegroups.com> > > . > > For more options, visit this group at > >http://groups.google.com/group/google-appengine?hl=en. > > -- > Ikai Lan > Developer Programs Engineer, Google App > Enginehttp://googleappengine.blogspot.com|http://twitter.com/app_engine -- 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: Help! About to hit the limit on appengine taskqueue 1M tasks limit
>> If you can tolerate additional latency, why not store data into the >> datastore? Because it's expensive? :) There's a big difference between making a 100ms put to datastore every request and making one every n requests. Requests with that higher latency may be tolerable from a end-user's POV but may not be tolerable from my wallet's perspective... :) >> We exposed a "grabTail" method for Memcache but removed it due to namespace >> bugs. If we release this in the future, grabTail will return the next item >> to be evicted by LRU, so you can write an asynchronous task to flush this to >> the datastore. This would be good :) I'd no idea the grabTail method did that. The next question then would be what proportion of evictions are cause by LRU over-writes...I'm sure evictions sometimes happen for other reasons (like hardware failure), but if those other reasons cause only a tiny proportion of evictions, then this regime might make memcache reliable 'enough'. If grabtail allows this, please bring it back soon! :D On Apr 15, 6:29 pm, "Ikai L (Google)" wrote: > We're moving into a middle ground between Memcache and the datastore. If you > can tolerate additional latency, why not store data into the datastore? You > should not design assuming memcache will preserve critical data. Don't store > anything in memcache that you cannot recover if evicted, even if your > application runs in a degraded mode. > > We exposed a "grabTail" method for Memcache but removed it due to namespace > bugs. If we release this in the future, grabTail will return the next item > to be evicted by LRU, so you can write an asynchronous task to flush this to > the datastore. There are no plans to create triggers for eviction. > > > > > > On Thu, Apr 15, 2010 at 8:15 AM, peterk wrote: > > It would, but depending on the extent of that latency it might be a > > reasonable trade off for reliability. I've an app that could > > definitely tolerate some % of memcache saves being higher latency if > > it guaranteed I didn't lose data. > > > The option of a silent background put() to the datastore upon eviction > > also wouldn't necessarily incur extra latency for your memcache save, > > but would instead 'just' cost you cpu_ms for those ds puts (i'm sure > > those DS puts could be asynchronous and your memcache operation could > > return without waiting for them to finish). > > > Again, I don't know if it's practical on the backend, feasible to > > implement. But I believe other database systems offer that kind of > > write-behind cache. > > > On Apr 15, 3:45 pm, Wooble wrote: > > > On Apr 15, 9:48 am, peterk wrote: > > > > > It'd be great if memcache could throw a warning or error upon a put to > > > > memcache, if that put will cause an eviction of another value, and ask > > > > you to retry your put with a token to confirm you're OK with the > > > > eviction. > > > > It's a cache. That would add annoying latency. > > > -- > > 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 > e...@googlegroups.com> > > . > > For more options, visit this group at > >http://groups.google.com/group/google-appengine?hl=en. > > -- > Ikai Lan > Developer Programs Engineer, Google App > Enginehttp://googleappengine.blogspot.com|http://twitter.com/app_engine -- 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.
Re: [google-appengine] Questions about request logs (their circular buffer, its size etc.)
The last time I checked, we guaranteed 90 days of logs regardless of size. This is subject to change, however. I don't know what size we will set, but like many of our other products, it'll likely start at a number we think is reasonable based on overall usage and trend upward. Anything is possible with regards to billed features - we just can't give an ETA unless it's explicitly stated on the roadmap. On Wed, Apr 14, 2010 at 12:27 PM, peterk wrote: > Reading some previous discussions and things alluded to therein, some > questions cropped up. > > I'm considering an application that quite fundamentally requires > access to all its request logs. > > So I guess I'd be recommended to use appcfg.py to periodically pull > down the logs and append them to a txt file, or do whatever else I > need to do to persist them. > > In previous discussion I saw Google folks say that logs are stored in > a circular buffer. Meaning if you had enough requests, they'd > overwrite older requests. Meaning that if you had enough requests or > were downloading the logs sufficiently infrequently, you might lose > logs. > > So question number 1: how big is the circular buffer for each > application? > > 2: Changes to that buffer size could detrimentally impact on my > application if revised downward (silently in particular), so are there > any guarantees that this buffer size won't be reduced in the future? > > 3: Is there any possibility that this buffer could be exposed via the > quota system so that an app could purchase a larger buffer size if it > were helpful? > > I'm flashing forward to a busy site and somewhat worrying about how > frequently I'll have to download the logs, and whether it would be > feasible to download them with a certain frequency anyway (e.g. if the > log download time is quite long - as I've found it can be). Any > answers or advice would be very welcome. 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. > > -- Ikai Lan Developer Programs Engineer, Google App Engine http://googleappengine.blogspot.com | http://twitter.com/app_engine -- 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.
Re: [google-appengine] Re: Help! About to hit the limit on appengine taskqueue 1M tasks limit
We're moving into a middle ground between Memcache and the datastore. If you can tolerate additional latency, why not store data into the datastore? You should not design assuming memcache will preserve critical data. Don't store anything in memcache that you cannot recover if evicted, even if your application runs in a degraded mode. We exposed a "grabTail" method for Memcache but removed it due to namespace bugs. If we release this in the future, grabTail will return the next item to be evicted by LRU, so you can write an asynchronous task to flush this to the datastore. There are no plans to create triggers for eviction. On Thu, Apr 15, 2010 at 8:15 AM, peterk wrote: > It would, but depending on the extent of that latency it might be a > reasonable trade off for reliability. I've an app that could > definitely tolerate some % of memcache saves being higher latency if > it guaranteed I didn't lose data. > > The option of a silent background put() to the datastore upon eviction > also wouldn't necessarily incur extra latency for your memcache save, > but would instead 'just' cost you cpu_ms for those ds puts (i'm sure > those DS puts could be asynchronous and your memcache operation could > return without waiting for them to finish). > > Again, I don't know if it's practical on the backend, feasible to > implement. But I believe other database systems offer that kind of > write-behind cache. > > On Apr 15, 3:45 pm, Wooble wrote: > > On Apr 15, 9:48 am, peterk wrote: > > > > > It'd be great if memcache could throw a warning or error upon a put to > > > memcache, if that put will cause an eviction of another value, and ask > > > you to retry your put with a token to confirm you're OK with the > > > eviction. > > > > It's a cache. That would add annoying latency. > > -- > 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. > > -- Ikai Lan Developer Programs Engineer, Google App Engine http://googleappengine.blogspot.com | http://twitter.com/app_engine -- 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: Reset my google app engine application
On Apr 15, 5:34 am, HM2K wrote: > How do I reset it? > > Cheers. What do you mean by "reset"? To delete all of your data, you need to fetch all of your entities' keys and use them to delete the entities. If you just want to get rid of the deployed code, deploy an empty version and delete any other versions. -- 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.
Re: [google-appengine] Re: Date time property in G Data Store error
Hi Delzad, Can you provide a oneliner (datetime.datetime.striptime(...)) that reproduces this behaviour? The problem is with date formatting, so it will be useful to remove the extraneous issues of the bulkloader from the equation. -Nick Johnson On Thu, Apr 15, 2010 at 1:46 AM, Delzad wrote: > Hi Nick! > > thanks for the post dear, > > yes I did try to send in an example date..and it gave back that same > string and said that the format did not match, and it inserted an > extra set of Inverted quotes.. > > I have a feeling it's something to do with my CSV file... > > here is the code.. > > ***loaders.py** > > import datetime > from google.appengine.ext import db > from google.appengine.tools import bulkloader > import models > > class BookLoader(bulkloader.Loader): > def __init__(self): > bulkloader.Loader.__init__(self, 'Book', > [('title', str), >('author', str), >('copyright_year', str), >('author_birthdate', lambda x: > datetime.datetime.strptime(x, '%m/%d/%Y').date()), > ]) > > loaders = [BookLoader] > > > *models.py*** > from google.appengine.ext import db > > class Book(db.Model): > title = db.StringProperty() > author = db.StringProperty() > copyright_year = db.StringProperty() > author_birthdate = db.DateProperty() > > **new_delzad.csv *** > > title author copyright_yearauthor_birthdate > app_en Delzad 2010 12/25/2012 > > > ** ERROR MESSAGE** > File "/usr/lib/python2.6/_strptime.py", line 325, in _strptime >(data_string, format)) > ValueError: time data "'author_birthdate'" does not match format '%m/ > %d/%Y' > [INFO] Backing off due to errors: 1.0 seconds > [INFO] An error occurred. Shutting down... > [ERROR ] Error in WorkerThread-0: time data "'author_birthdate'" > does not match format '%m/%d/%Y' > > > > > > these inverted commas, which i have entered in the loaders.py is the > format which I am specifying right? > > the csv file in Excel spreadsheet does not contain any inverted > commas... > > so this kind of leaves me a bit baffled..where could I be going wrong? > > can i just remove the strptime thing and add just a simple date > format? > > thanks dear > > regards > > Delzad > > > On Apr 14, 3:09 pm, "Nick Johnson (Google)" > wrote: > > Hi Delzad, > > > > Can you provide sample data? Have you tried passing an example date > directly > > to datetime.datetime.strptime with that format string, to see if it > works? > > > > -Nick Johnson > > > > > > > > On Wed, Apr 14, 2010 at 1:00 AM, Delzad wrote: > > > Hi there! > > > > > Bit confused about the data stores ability to take in data. > > > > > i'm trying to upload a data value in the format, %m/%d/%Y, but i keep > > > getting the error message: ValueError: time data 'Date' does not match > > > format '%m/%d/%Y'. > > > > > My CSV file contains data in this exact same format. > > > > > here is the main bit of my loader file. > > > > > class loaders(bulkloader.Loader): > > > def __init__(self): > > >bulkloader.Loader.__init__(self, 'New_aviva', > > > [('Date',lambda x: > > > datetime.datetime.strptime(x, '%m/%d/%Y').date()), > > >('Open', int), > > >('high', int), > > >('low', int), > > >('close', int), > > >('volume', int), > > >('adjclose', int) > > > ]) > > > > > Although I have managed to fix this error...if I take in the date > > > property as a STRING, it works just fine, but then I have issues with > > > the GQL in the data store, as I would not be able to access them in > > > any order. > > > > > So i need to take in date as a DATE value. > > > > > Guidance appriciated. > > > > > -- > > > 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. > > > > -- > > 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. > > -- Nick
[google-appengine] task queue timeouts
is anyone else seeing a lot more Task Queue 10 seconds timeouts today? These tasks usually take about 10-15secs to complete and were running really fast yesterday. Billing enabled. "Request was aborted after waiting too long to attempt to service your request. " /tasks/indexing 500 10026ms 0cpu_ms 0kb AppEngine-Google; (+http:// code.google.com/appengine) 0.1.0.2 -- 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: Request per Second limitation (PLEASE)
Thanks Nick, We are now in 1250 Req/sec and everything is fine :) On Apr 14, 12:21 pm, "Nick Johnson (Google)" wrote: > Hi Jairo, > > If your average latency is low (below 1 second), you should be able to scale > up to any request load, as long as you provide the budget to support it. > > -Nick Johnson > > On Wed, Apr 14, 2010 at 5:37 PM, Jairo Vasquez wrote: > > > > > > > Hi, > > > I am managing 650 request per second. Can I start to manage 1200 > > request per second? > > > I need to know what my limits are, what can I do. > > > Should I use another solution or can GAE support this load? > > > Thanks > > > -- > > Jairo Vasquez Moreno > > Mentez Developer > >www.mentez.com > > Medellin - Colombia > > > -- > > 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 > 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: Help! About to hit the limit on appengine taskqueue 1M tasks limit
It would, but depending on the extent of that latency it might be a reasonable trade off for reliability. I've an app that could definitely tolerate some % of memcache saves being higher latency if it guaranteed I didn't lose data. The option of a silent background put() to the datastore upon eviction also wouldn't necessarily incur extra latency for your memcache save, but would instead 'just' cost you cpu_ms for those ds puts (i'm sure those DS puts could be asynchronous and your memcache operation could return without waiting for them to finish). Again, I don't know if it's practical on the backend, feasible to implement. But I believe other database systems offer that kind of write-behind cache. On Apr 15, 3:45 pm, Wooble wrote: > On Apr 15, 9:48 am, peterk wrote: > > > It'd be great if memcache could throw a warning or error upon a put to > > memcache, if that put will cause an eviction of another value, and ask > > you to retry your put with a token to confirm you're OK with the > > eviction. > > It's a cache. That would add annoying latency. -- 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] convert to java code
I find the code which is written in python.. but i don't know python language and want to understand the code... so if it is possible to convert it into java... i understand it properly.. please help me with that and convert it into similar java code... Here is my code: import logging import urllib import re from waveapi import events from waveapi import model from waveapi import robot from waveapi import document from django.utils import simplejson from google.appengine.api import urlfetch def OnDocChanged(properties, context): #Get Contents of current blip blip = context.GetBlipById(properties['blipId']) contents = blip.GetDocument().GetText() #Clean Up Text Remove p = re.compile('(<( )*br( )*[/]>)') contents = p.sub('\n',contents) #Run Search sRes += "[" sRes += processBlip(contents) if(sRes != contents): sRes += "]" root_wavelet = context.GetRootWavelet() root_wavelet.CreateBlip().GetDocument().SetText(sRes) def processBlip(blip): text = blip.GetDocument().GetText() returnText = "" charsAdded = 0 #Setup Regular Expression to find search strings p = re.compile("^(.)_ ([0-9a-zA-Z ]+)",re.MULTILINE) searchStrings = p.finditer(text) flickrImages = [] #Iterate through search strings for c in searchStrings: s = c.groups() if(s[0] == 'G'): sRet = '\nGoogle Search for "' + s[1] + '"\n\n' sRet += searchGoogle(s[1]) #returnText = returnText[0:c.end()+charsAdded] + sRet + '\n'+ returnText[c.end()+charsAdded+1:len(returnText)] #charsAdded += len(sRet) stringToBlip(blip,sRet) elif(s[0] == 'F'): sRet = searchFlickr(s[1]) for imageURL in sRet: cImg = document.Image(imageURL) flickrImages.append(cImg) title = '\nFlickr Search for "' + s[1] + '"\n\n' imageListToBlip(blip,flickrImages,title) #blip.GetDocument().SetText(contents) def stringToBlip(blip,contents): #newBlip = blip newBlip = blip.GetDocument().AppendInlineBlip() if(contents): newBlip.GetDocument().SetText(contents) def imageListToBlip(blip,imgList,text): #newBlip = blip newBlip = blip.GetDocument().AppendInlineBlip() newBlip.GetDocument().SetText(text) for i in imgList: newBlip.GetDocument().AppendElement(i) def searchFlickr(query): results = [] url = 'http://api.flickr.com/services/rest/? method=flickr.photos.search&api_key=13b98c74bedac9150a428e87bc782e81&format=json&per_page=5&text= %s' % (urllib.quote(query)) content = urlfetch.fetch(url=url).content content =content[:-1].replace("jsonFlickrApi(","") for item in simplejson.loads(content)['photos']['photo']: results.append('http://farm'+str(item['farm']) +'.static.flickr.com/'+str(item['server'])+'/'+str(item['id']) +'_'+str(item['secret'])+'_m.jpg') return results def searchGoogle(query): results = "" #print "Searching Google with query \"" + query + "\"" url = 'http://ajax.googleapis.com/ajax/services/search/web? v=1.0&start=0&q=%s' % (urllib.quote(query)) content = urlfetch.fetch(url=url).content for item in simplejson.loads(content)['responseData']['results']: p = re.compile('<[/ ]?[a-zA-Z ]>') title = p.sub('',item['title']) content = p.sub('',item['content']) returnStr = title + '\n' +\ item['url'] + '\n' +\ content + '\n\n' results += returnStr return results def OnRobotAdded(properties, context): """Invoked when the robot has been added.""" root_wavelet = context.GetRootWavelet() root_wavelet.CreateBlip().GetDocument().SetText("Welcome to Wave Search!") def OnBlipSubmit(properties, context): blip = context.GetBlipById(properties['blipId']) processBlip(blip) if __name__ == '__main__': wavesearch = robot.Robot('WaveSearch', image_url='http://wave-search.appspot.com/ public/logo.png', version='1.02', profile_url='http://wave-search.appspot.com') wavesearch.RegisterHandler(events.WAVELET_SELF_ADDED, OnRobotAdded) wavesearch.RegisterHandler(events.BLIP_SUBMITTED, OnBlipSubmit) #wavesearch.RegisterHandler(events.DOCUMENT_CHANGED, OnDocChanged) wavesearch.Run(debug=True) -- 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] Python App Engine developer needed
Title: Python App Engine developer needed Hi, I'm looking for an experienced Python/app engine programmer for a job that will last for around a month in London. You would have to be able to start work as soon as possible. Please let me know if you are interested, and I will send further details. Thanks, Martin Wednesday, April 14, 2010, 7:19:43 PM, you wrote: Here's a white paper that we have about Google Apps. Many of the same principles apply. Do you have any specific questions? Your questions are a bit general. On Wed, Apr 14, 2010 at 12:13 AM, Valentino Hankypantswrote: hello together, i need some background information about security offers or some documents which shows how security will be guaranteed in google app engine. - does some (special) technologies for google app engine exist to guarantee security? - exist some standards or guidelines to create "secure" apps with google app engine? - anybody knows some reliable resources for security concerns? thx in advance greatz valentino -- 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. -- Ikai Lan Developer Programs Engineer, Google App Engine http://googleappengine.blogspot.com | http://twitter.com/app_engine -- 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. -- 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] Reset my google app engine application
How do I reset it? Cheers. -- 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] Fwd: Recurring javascript errors
yea I am getting the message also but it only happens to some flash. It just started today, yesterday was fine. My friend seems to be also getting the same problem and it started today for him too. This is happening in my Chrome. I don't know what to do. Unsafe JavaScript attempt to access frame with URL http://facebook.mafiawars.com/mwfb/remote/html_server.php?xw_controller=index&xw_action=view&xw_city=&tmp=5221c863498a152d5facdd1f7fc8591e&cb=0&skip_req_frame=1&first_load=1&sf_xw_user_id=1796169879&sf_xw_sig=2661762aa3621f8dec975a7b3450eb77 from frame with URL http://apps.facebook.com/inthemafia/?zy_link=appage. Domains, protocols and ports must match. -- Forwarded message -- From: pythono Date: Mon, 29 Mar 2010 14:42:48 -0700 (PDT) Subject: Recurring javascript errors To: Google App Engine Hey there, I keep getting the following javascript error messages (in the Chrome javascript console). """ Unable to post message to http://googleads.g.doubleclick.net. Recipient has origin http://dontjudgemejudger.appspot.com/. Unsafe JavaScript attempt to access frame with URL http://dontjudgemejudger.appspot.com/ from frame with URL http://ad.doubleclick.net/adi/N5295.134426.513244521/B4255847.11;sz=160x600;click=http://googleads.g.doubleclick.net/aclk?sa=l&ai=BEa9P6h2xS4G6J9_znAeO0rCzD4r__pMB1oCtpBDCxKLeMoDqMBABGAIg-cDpEDgAUIDH4cQEYMn2pYqkpMQRoAHOsbLyA7IBGXd3dy5kb250anVkZ2VtZWp1ZGdlci5jb226AQoxNjB4NjAwX2FzyAEJ2gEhaHR0cDovL3d3dy5kb250anVkZ2VtZWp1ZGdlci5jb20v4AECuAIYwAIG0AIBqAMB0QM3PFMkP7rgC-gD4AboA58E6ANU9QMAAADE9QMACAAAiAQAkAQBoAQE&num=2&sig=AGiWqty-r2812ptBH6NKRNaaZJKGAD5z7g&client=ca-pub-9099580055602120&adurl=;ord=1305994440?. Domains, protocols and ports must match. """ It seems to be something to do with either Adsense or Analytics (i am running both on the site). Has anyone ever encountered these errors? Should I be concerned (the errors don't seem to affect either google services or my sites' native scripts)? 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] Source code for AppCfg.java
Hi all, I was wondering if the code for AppCfg.java is available anywhere. I'm trying to modify it a bit to fit my application, however I can't seem to find the source code for it. (Only can find the AppCfg.class inside com.google.appengine.tools.admin) Any help would be greatly appreciated!! 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] Google Data API to talk to App Engine Service
Hi, I'm looking for a Google API that will let me talk to App Engine Service, and get user's information regarding their App Engine service. For example: Given a username and password, I will then authenticate these informations with Google service, and if authenticated, I will then talk to App Engine service, and ask for this specific username information (such as if this user have an application ID in Google App Engine). Is it possible to do so? if so, is there any example to do this? Thanks in advance! -- 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: Help! About to hit the limit on appengine taskqueue 1M tasks limit
On Apr 15, 9:48 am, peterk wrote: > It'd be great if memcache could throw a warning or error upon a put to > memcache, if that put will cause an eviction of another value, and ask > you to retry your put with a token to confirm you're OK with the > eviction. It's a cache. That would add annoying latency. -- 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: Help! About to hit the limit on appengine taskqueue 1M tasks limit
Are there benchmarks available for memcache reliability on GAE? It'd be great if memcache could throw a warning or error upon a put to memcache, if that put will cause an eviction of another value, and ask you to retry your put with a token to confirm you're OK with the eviction. The equivalent of a 'are you sure you want to overwrite this value?' prompt. On a related note, I put in a feature request for an option for a trigger to persist memcache data to datastore upon eviction, but I don't know if it's feasible or not :| (see: http://code.google.com/p/googleappengine/issues/detail?id=3089&sort=-id&colspec=ID%20Type%20Status%20Priority%20Stars%20Owner%20Summary%20Log%20Component) A warning system like the above might be more general though, but assumes that eviction only happens because other data is pushed in (which may not be the case - I'm guessing other scenarios cause data eviction too). On Apr 15, 2:14 pm, Wooble wrote: > On Apr 14, 10:23 pm, Timofey Koolin wrote: > > > You can write your log and other tasks to memcache. In tasks or by > > cron you can read your meny data from memcache per time and write to > > datastore. > > ...if you don't mind losing your data sometimes. -- 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] Query with ancestor and JDO
I've been struggling to translate some Datastore approaches I see documented in Python into Java. One in particular is querying for entities that have a given parent. Do I have to use the low-level API in Java for a query like that? I can't find anything about querying on parents in the main Java Datastore docs, which are oriented around JDO. I did find the com.google.appengine.api.datastore.Query.setAncestor() method and ancestor accepting Query constructors in the low-level API docs, and I guess that's what I'd need to use. Is there any example code using the low-level API? I'd like to use JDO where I can, but I'm new to JDO, the Datastore, and the low-level API, so I'm confused about if I should or how best to use them together. Again, sample code would be a big help. Sorry if I missed it, but all the sample apps appear to be in Python. Thanks, Tim -- 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: Help! About to hit the limit on appengine taskqueue 1M tasks limit
On Apr 14, 10:23 pm, Timofey Koolin wrote: > You can write your log and other tasks to memcache. In tasks or by > cron you can read your meny data from memcache per time and write to > datastore. ...if you don't mind losing your data sometimes. -- 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] Return list of dicts instead of object
Hi, I am using an Expando class and I want to sort it. It needs to be sorted according to a dynamically assigned property so it has o be done at runtime. I am using python and it could be done easily with something like: dates = sorted(datelist, key=itemgetter('comp_date')) But since the objects returned from the datastore are not iterable this is impossible. So I thought that I would just create my own list of dicts and then I can iterate and sort it, but alas that is not possible either. I can iterate over the primary just fine for date in datesfromdb: datelist.append(dict(date)) but no matter how I try to get the data out of the date object I have no luck. I dont want to name all the properties of the model since that would make it a big pain to update anything, but how then do I do it? Any help would be 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=en.
[google-appengine] Re: Random, but persistant error
So nobody ever got an UnsupportedOperationException when calling pm.getObjectById()?? El 13 de abril de 2010 22:23, Juan González escribió: > Hi all, > I have a random issue when testing my application locally. From > time to time, when I use PersistenceManager.getObjectById() I receive > the following exception: > > java.lang.UnsupportedOperationException >at > > org.datanucleus.store.appengine.EntityUtils.getPropertyName(EntityUtils.java: > 62) >at > > org.datanucleus.store.appengine.DatastoreFieldManager.getPropertyName(DatastoreFieldManager.java: > 1073) >at > > org.datanucleus.store.appengine.DatastoreFieldManager.fetchObjectField(DatastoreFieldManager.java: > 309) >at > > org.datanucleus.state.AbstractStateManager.replacingObjectField(AbstractStateManager.java: > 1197) >at > > org.ugr.rtpstat.server.orm.UsuarioRegistrado.jdoReplaceField(UsuarioRegistrado.java) >at > > org.ugr.rtpstat.server.orm.UsuarioRegistrado.jdoReplaceFields(UsuarioRegistrado.java) >at > > org.datanucleus.state.JDOStateManagerImpl.replaceFields(JDOStateManagerImpl.java: > 2772) >at > > org.datanucleus.state.JDOStateManagerImpl.replaceFields(JDOStateManagerImpl.java: > 2791) >at > > org.datanucleus.store.appengine.DatastorePersistenceHandler.fetchObject(DatastorePersistenceHandler.java: > 466) >at > > org.datanucleus.state.JDOStateManagerImpl.validate(JDOStateManagerImpl.java: > 4263) >at > org.datanucleus.ObjectManagerImpl.findObject(ObjectManagerImpl.java: > 2444) >at > > org.datanucleus.jdo.JDOPersistenceManager.getObjectById(JDOPersistenceManager.java: > 1671) >at > > org.datanucleus.jdo.JDOPersistenceManager.getObjectById(JDOPersistenceManager.java: > 1767) >at > > org.datanucleus.store.appengine.jdo.DatastoreJDOPersistenceManager.getObjectById(DatastoreJDOPersistenceManager.java: > 73) >at > > org.ugr.rtpstat.server.RtpstatServiceImpl.getRegisteredUser(RtpstatServiceImpl.java: > 88) >at > > org.ugr.rtpstat.server.RtpstatServiceImpl.getRegisteredUser(RtpstatServiceImpl.java: > 79) >at > > org.ugr.rtpstat.server.RtpstatServiceImpl.isRegisteredUser(RtpstatServiceImpl.java: > 204) >at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) >at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java: > 39) >at > > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java: > 25) >at java.lang.reflect.Method.invoke(Method.java:597) >at > > com.google.appengine.tools.development.agent.runtime.Runtime.invoke(Runtime.java: > 100) >at > com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse(RPC.java: > 562) >at > > com.google.gwt.user.server.rpc.RemoteServiceServlet.processCall(RemoteServiceServlet.java: > 188) >at > > com.google.gwt.user.server.rpc.RemoteServiceServlet.processPost(RemoteServiceServlet.java: > 224) >at > > com.google.gwt.user.server.rpc.AbstractRemoteServiceServlet.doPost(AbstractRemoteServiceServlet.java: > 62) >at javax.servlet.http.HttpServlet.service(HttpServlet.java:713) >at javax.servlet.http.HttpServlet.service(HttpServlet.java:806) >at > org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java: > 511) >at org.mortbay.jetty.servlet.ServletHandler > $CachedChain.doFilter(ServletHandler.java:1166) >at > > com.google.appengine.api.blobstore.dev.ServeBlobFilter.doFilter(ServeBlobFilter.java: > 51) >at org.mortbay.jetty.servlet.ServletHandler > $CachedChain.doFilter(ServletHandler.java:1157) >at > > com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter(TransactionCleanupFilter.java: > 43) >at org.mortbay.jetty.servlet.ServletHandler > $CachedChain.doFilter(ServletHandler.java:1157) >at > > com.google.appengine.tools.development.StaticFileFilter.doFilter(StaticFileFilter.java: > 122) >at org.mortbay.jetty.servlet.ServletHandler > $CachedChain.doFilter(ServletHandler.java:1157) >at > org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java: > 388) >at > org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java: > 216) >at > org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java: > 182) >at > org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java: > 765) >at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java: > 418) >at > > com.google.apphosting.utils.jetty.DevAppEngineWebAppContext.handle(DevAppEngineWebAppContext.java: > 70) >at > org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java: > 152) >at com.google.appengine.tools.development.JettyContainerService > $ApiProxyHandler.handle(JettyContainerService.java:349) >at > org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java: > 152) >at org
Re: [google-appengine] Re: Mismatch between Datastore Statistics & Quota Details
Would you mind to provide your URL of your app, so I can get some idea of how complex an app has to be to take up that space? Or, if it not possible due privacy reasons, could you briefly describe the range of features and approx. number of records? On Thu, Apr 15, 2010 at 9:27 AM, nischalshetty wrote: > I guess that is! And that explains why I have 3.6 GB now!! > > -Nischal > > On Apr 14, 1:17 am, Jaroslav Záruba wrote: > > Wow. I knew indexes would be significant part of the total space taken by > my > > data, but 10 times the space entities take? Is it usual ratio? > > > > On Tue, Apr 13, 2010 at 4:27 PM, Nick Johnson (Google) < > > > > nick.john...@google.com> wrote: > > > Hi Krishna, > > > > > The figure reported by the datastore stats represents the size of your > > > data. The quota usage includes space taken by indexes. > > > > > -Nick Johnson > > > > > On Tue, Apr 13, 2010 at 11:19 AM, Krishna >wrote: > > > > >> Hi, > > > > >> The datastore statistics viewer tells me that the size of all entities > > >> stored is 3 MB. However, the quota details page tells me that I'm > > >> using 3% of my 1 GB free limit (~30 MB). Does the 3 MB number only > > >> represent a subset of entities or is this really a discrepancy? > > > > >> Thanks, > > > > >> Krishna > > > > >> -- > > >> 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. > > > > > -- > > > 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-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-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. > > -- 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: Mismatch between Datastore Statistics & Quota Details
I guess that is! And that explains why I have 3.6 GB now!! -Nischal On Apr 14, 1:17 am, Jaroslav Záruba wrote: > Wow. I knew indexes would be significant part of the total space taken by my > data, but 10 times the space entities take? Is it usual ratio? > > On Tue, Apr 13, 2010 at 4:27 PM, Nick Johnson (Google) < > > nick.john...@google.com> wrote: > > Hi Krishna, > > > The figure reported by the datastore stats represents the size of your > > data. The quota usage includes space taken by indexes. > > > -Nick Johnson > > > On Tue, Apr 13, 2010 at 11:19 AM, Krishna > > wrote: > > >> Hi, > > >> The datastore statistics viewer tells me that the size of all entities > >> stored is 3 MB. However, the quota details page tells me that I'm > >> using 3% of my 1 GB free limit (~30 MB). Does the 3 MB number only > >> represent a subset of entities or is this really a discrepancy? > > >> Thanks, > > >> Krishna > > >> -- > >> 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. > > > -- > > 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. -- 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.
Re: [google-appengine] iPhone / AppEngine / Java Servlet / Authentication
I use HTTP Basic auth over SSL, works quite well for me. On Tue, Apr 13, 2010 at 1:37 PM, hiawatha wrote: > Hello, > > I'm looking for help with, example code, or a tutorial on doing > session management and user authentication (not Google user) from an > iPhone App using App Engine as the back end. > > Any and all relevant pointers appreciated. > > Thanks much. > > - H > > -- > 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. > > -- Patrick H. Twohig. Namazu Studios P.O. Box 34161 San Diego, CA 92163-4161 http://www.namazustudios.com/ http://www.iduel-online.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.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.
So far every time this exception is thrown the email is actually sent. I've seen it at least 10 times so far, ironically mainly to gmail addresses. Pretty much I take my chances and raise deferred.PermanentTaskFailure and close my eyes on the problem. BBCing and then processing the email back in order to actually find out if email was sent is an option but seems like to much work. This flakiness made me realize that I had to send one email per task. Imagine the situation when you send 100 emails in a task and at recipient 80th the email exception is thrown. When the task gets retried, the first 80 recipients will get a duplicate email, well assuming second time around the task executes without hitch. Ideally, the bug should be fixed, mail.send should only raise exceptions when email is not sent. On Apr 14, 10:44 pm, hawkett wrote: > Sounds like it would reliably set the flag, but probably not soon > enough (at least in some situations) to beat the task queue retry > > On Apr 14, 7:14 pm, "Ikai L (Google)" wrote: > > > > > I've seen another solution where you BCC your application and use that to > > mark the flag as successful or not. > > > On Wed, Apr 14, 2010 at 6:19 AM, hawkett wrote: > > > It seems the author is saying that he only sends one email per task, > > > so the only 'email sent' flag to stick in memcache is the one that is > > > occurring when the exception is raised. I'm not sure that solution > > > will work - how can he know if an email has been sent successfully > > > when the mail API is throwing an exception? He would need a list of > > > the exceptions that occur *despite* the email being successfully > > > sent. Seems a bit shaky to me. As the author says, this seems like a > > > GAE bug - if GAE is going to raise the DeadlineExceededError on the > > > mail API, then the mail should not be sent - either it succeeds within > > > the deadline or it fails to meet the deadline - not both. I can see > > > how this could be tricky to guarantee though > > > > On Apr 12, 11:15 pm, "Ikai L (Google)" wrote: > > > > A possible solution would be to store emails where you have already sent > > > a > > > > message to in Memcache. If the tasks get retried, you check for the > > > presence > > > > of a key and email hash. If it exists, you don't send the message. If it > > > > does not, you send the message and insert into Memcache. > > > > > On Tue, Apr 6, 2010 at 3:33 PM, Ubaldo Huerta wrote: > > > > > I have a task that sends a single email which works well, but every > > > > > now and then (every 100 emails or so, my guess), the tasks get's > > > > > retried because of an exception is thrown while sending the email > > > > > message. The problem is that the email message is actually sent even > > > > > though the exception below is thrown. So, naturally, I'm lossing face > > > > > sending duplicate emails. Is there a way around this before the bug > > > > > gets fixed? :-( > > > > > > File "/base/python_lib/versions/1/google/appengine/api/mail.py", line > > > > > 742, in send > > > > > make_sync_call('mail', self._API_CALL, message, response) > > > > > File "/base/python_lib/versions/1/google/appengine/api/ > > > > > apiproxy_stub_map.py", line 78, in MakeSyncCall > > > > > return apiproxy.MakeSyncCall(service, call, request, response) > > > > > File "/base/python_lib/versions/1/google/appengine/api/ > > > > > apiproxy_stub_map.py", line 278, in MakeSyncCall > > > > > rpc.CheckSuccess() > > > > > File "/base/python_lib/versions/1/google/appengine/api/ > > > > > apiproxy_rpc.py", line 126, in CheckSuccess > > > > > raise self.exception > > > > > DeadlineExceededError: The API call mail.Send() took too long to > > > > > respond and was cancelled. > > > > > > -- > > > > > 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 > > > > e...@googlegroups.com> > > e...@googlegroups.com> > > > > > . > > > > > For more options, visit this group at > > > > >http://groups.google.com/group/google-appengine?hl=en. > > > > > -- > > > > Ikai Lan > > > > Developer Programs Engineer, Google App Enginehttp:// > > > googleappengine.blogspot.com|http://twitter.com/app_engine > > > > -- > > > 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 > > e...@googlegroups.com> > > > . > > > For more options, visit this group at > > >http://groups.google.com/group/google-appengine?hl=en. > > > -- > > Ikai Lan > > Developer Programs Engineer, Google App > > Enginehttp://googleappengine.blogspot.com|htt