[google-appengine] Simple task processing class - Worker
Hi all, I've just started a blog on professional level AppEngine coding, and the first substantive post is on a python class I built for using tasks on Push Queues for doing scheduled job processing. It's here: http://appenginedevelopment.blogspot.com/2011/10/worker.html I'd love some feedback on this. I'm still a bit of a n00b to AppEngine, so I might be doing it wrong. Are there better ways to do job processing on AppEngine that I'm missing? I've posted it inline assuming there are people as lazy as me who can't be bothered clicking. You're missing links and such, but you can get the gist. The Worker Emlyn O'Regan 1 Oct 2011 One of the first serious Google AppEngine subjects I've approached recently is the problem of doing work in the background. In my particular case I needed to do some intensive and error prone tasks, then send an email with the results (which is also error prone), on a schedule. I was going to write some standard job-processing-in-a-loop kind of code, with the loop being processed as a cron job (set up in cron.yaml). That's what Syyncc does. But some bit of my brain kept grumbling about the inelegance of that approach. You're on a platform that wants to do it a different way, says my brain (and who am I to disagree?). And the cron thing is kind of bad, because it doesn't scale. Let's say I schedule a job every two minutes. It can get through some fixed amount of work (maybe 10 jobs?) before it hits its time limit. It can never do more than that. That's nasty. People often recommend backends for this kind of work. With them, you stick jobs on a pull queue, and pull them off with the backend. Each backend can process a limited amount of jobs, but you can set them to be automatically created in response to workload, which is cool. But I'm partial to push queues, what were previously just called Task Queues. At any point in code you can schedule a task to run, which simply comes through as a post to a url in your app: taskqueue.add(url='/dosomething', params={'key': key}) It's a bit clunky, because you need to set up a handler for the url, and implement the Post method. Oh wait, no you don't. Nick Johnson wrote the excellent deferred.defer library, which takes care of the public url and thunking the call from there into a method of your choice. So instead your call can look like this: from google.appengine.ext import deferred def do_something_expensive(a, b, c=None): logging.info("Doing something expensive!") # Do your work here # Somewhere else deferred.defer(do_something_expensive, "Hello, world!", 42, c=True) That's cool, isn't it! What's also cool about tasks is that you can delay them, either by specifying a countdown or an eta. Using a countdown (number of seconds before execution) is interesting, because you can delay tasks, ie: spread the work out a bit. But using an eta is really fascinating, because it lets you schedule work for specific times. So if you need to schedule an email to go out at midnight, a task with an eta will do that for you, with no real plumbing required on your part. (Can you do this with a pull queue? You may be able to use eta to stop tasks showing up through the lease system before a specified time, I'm not sure about this.) This is all great for performing scheduled background tasks. Except, what if they fail? Or take a long time to complete? In fact, how can you report on the status of these tasks? Well, you can't. There's no way to go in and find out much about the task through any APIs. Even if there was, you'd probably need custom information suited to the job at hand anyway. What I need is an object in the datastore that maps to the task. I personally prefer an object oriented approach (ok, I'm an old man set in my ways, yes I know). So, what I'd like is a base object which lets me set up a task, kick it off, record its progress, and lets me see afterwards how it went. So I created the Worker. The worker is a base class polymodel object, that you can use to do background jobs. You need to override it, and provide it with a job to do (doExecute()) and a method for calculating the next time to run if you want a repeating job (doCalculateNextRun()). You can also provide a specific queue name (override GetQueue()) and you can specify whether or not it should run immediately (override ExecuteImmediately()). If ExecuteImmediately() returns false, then on the first, immediate run it wont call doExecute(), but instead will call doCalculateNextRun() and reschedule itself. So for instance, if you want to run a background job immediately (say send an email), you make this class: class SendAnEmailImmediately(Worker) def doExecute(self): logging.info("Sending emails to %s" % lemailStr) lmessage = mail.EmailMessage( sender="a...@example.com", to="be...@example.com", subject= "Hi Betty",
[google-appengine] Feature Request to Switch Accounts at the Dashboard
6018 If you, like me, wear multiple hats (professional and pro-bono), and keep them separate with separate accounts, then you, like me, find it really annoying to switch between those hats in the dashboard. Please star my feature request. Thanks. -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: urlfetch maximum interactive timeout why 10 seconds and not 20?
For PayPal integration on App Engine, you need to ensure that you split your PreAuth/Capture phases (i.e., never do a straight up Purchase), and you have to implement their IPN mechanism to know the true state of things. A PreAuth takes longer than a Capture, but if a PreAuth times out, the consequences are less: on your IPN, if you get a PreAuth transaction that you don't know about (i.e., because it timed out), simply Void it. If your PreAuth succeeds, you can issue a Capture which is typically quite quick. It's a pain given the short(ish) url fetch timeout (or, if you look at it another way, the long time PayPal takes to process cards sometimes), but it can be done. j On Sep 30, 8:51 am, stevep wrote: > If you are referring to Paypal url calls made under their test > environment -- these ran much more slowly (variably) for me vs. > production. Overall, GAE is difficult to ensure PP completion. I'd > made several comments a long time ago (b/4 pull queues & instances) > for a single, high-performance TQ to address key weaknesses. Note: My > only frame of reference is PP's digital goods purchase process. > > HTH, > stevep > > On Sep 29, 1:40 am, PK wrote: > > > > > > > > > I have integrated my site with a cool online payments service. They provide > > an API for online payments that I access from the server side using the > > urlfetch() API. Unfortunately, once in a while their service takes a little > > bit more than 10 seconds to respond on the pay API, so the payment goes > > through but my code gets a timeout and reports an error to the user which is > > very frustrating. > > > I am trying to get the online payments vendor to improve their response > > times but I was wondering why did you pick 10 instead of 20 seconds for the > > urlfetch maximum timeout. In 30 seconds there is enough time to get in, do a > > 20 second urlfetch and return in worst case. > > > Thanks, > > PK > > > PS Yes I have thought of doing the urlfetch from a task but the code gets > > pretty complicated pretty fast. -- 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] HELP PLEASE! Bug!
Hi, i've compiled my project for the first time with the exact spec that i'm compiling now, it's just the second deployment that i'm doing. I'm getting this error: Expecting a stackmap frame at branch target 6 in method in the development server, and: java.lang.UnsupportedClassVersionError: com/myapp/server/GreetingServiceImpl : Unsupported major.minor version 51.0 i'm using the twitter4j lib. 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] email not sent counted towards quota in new pricing billing ?
hello, I was evaluating the new pricing model using the usage report in the billing history in the dashboard. There is 100 recipiends free in the new billing For emails, I noticed that I had a $0.78 in Used columns against a 1.00 in Free columns So I guess I must have sent 78 emails. [that's a strange way to display that free quota. Why not 78 used against 100 free ? or $0.0078 used against $0.01 free ?] When I look at my logs I see: 22 errors : 'The API call mail.Send() took too long to respond and was cancelled.' 54 mails effectivly sent for a total of 76 call to mail.Send() So the failed call to mail.Send() are counted against the free quota !? not very fair. I take extra care to use task queue to send email at the min rate to not exceed the quota limit. Those errors did not happened before. May be that's because of restriction on number of running instance I set. or other random circumstances... -- 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/-/rxm-5d-wDyUJ. 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: what should I do, when the new pricing takes effect?
Definitely try to optimize if possible. You may consider moving data to blobstore too if they change infrequently. -- 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/-/580HBDkE0ZQJ. 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: hosting a c compiler on gae
I have used Janino which does runtime compilation of Java code into java classes that can be loaded into the running VM. If you are willing to work with Java, this is an option you can try. -- 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/-/Ribe6b8xwckJ. To post to this group, send email to google-appengine@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en.
Re: [google-appengine] Re: urlfetch maximum interactive timeout why 10 seconds and not 20?
My integration is with a new service called Dwolla. It was particularly embarrassing because the sandbox always takes less than 10 seconds so the issues arose only with real customers in production. Yesterday night, I implemented the urlfetch part using a task so now I should be good for up to 10 minutes. PK On Oct 1, 2011, at 6:56 AM, Jason Collins wrote: > For PayPal integration on App Engine, you need to ensure that you > split your PreAuth/Capture phases (i.e., never do a straight up > Purchase), and you have to implement their IPN mechanism to know the > true state of things. A PreAuth takes longer than a Capture, but if a > PreAuth times out, the consequences are less: on your IPN, if you get > a PreAuth transaction that you don't know about (i.e., because it > timed out), simply Void it. If your PreAuth succeeds, you can issue a > Capture which is typically quite quick. > > It's a pain given the short(ish) url fetch timeout (or, if you look at > it another way, the long time PayPal takes to process cards > sometimes), but it can be done. > > j > > On Sep 30, 8:51 am, stevep wrote: >> If you are referring to Paypal url calls made under their test >> environment -- these ran much more slowly (variably) for me vs. >> production. Overall, GAE is difficult to ensure PP completion. I'd >> made several comments a long time ago (b/4 pull queues & instances) >> for a single, high-performance TQ to address key weaknesses. Note: My >> only frame of reference is PP's digital goods purchase process. >> >> HTH, >> stevep >> >> On Sep 29, 1:40 am, PK wrote: >> >> >> >> >> >> >> >>> I have integrated my site with a cool online payments service. They provide >>> an API for online payments that I access from the server side using the >>> urlfetch() API. Unfortunately, once in a while their service takes a little >>> bit more than 10 seconds to respond on the pay API, so the payment goes >>> through but my code gets a timeout and reports an error to the user which is >>> very frustrating. >> >>> I am trying to get the online payments vendor to improve their response >>> times but I was wondering why did you pick 10 instead of 20 seconds for the >>> urlfetch maximum timeout. In 30 seconds there is enough time to get in, do a >>> 20 second urlfetch and return in worst case. >> >>> Thanks, >>> PK >> >>> PS Yes I have thought of doing the urlfetch from a task but the code gets >>> pretty complicated pretty fast. > > -- > You received this message because you are subscribed to the Google Groups > "Google App Engine" group. > To post to this group, send email to google-appengine@googlegroups.com. > To unsubscribe from this group, send email to > google-appengine+unsubscr...@googlegroups.com. > For more options, visit this group at > http://groups.google.com/group/google-appengine?hl=en. > -- You received this message because you are subscribed to the Google Groups "Google App Engine" group. To post to this group, send email to google-appengine@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en.
[google-appengine] Problems with java session
Hi There, I am having some problems with managing session in my GAE app. Although the sessions on the Eclipse SDK runs well, on the real App Engine the session data does not persist. There are two class objects that I am trying to store in a session attribute. One is a simple string and the other is the one mentioned below. But both of them are not getting saved in the session. @PersistenceCapable(detachable="true") public class Agent implements Serializable{ @PrimaryKey @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY) private Long id; @Persistent private String name; @Element(dependent = "true") private List contacts = new ArrayList(); @Element(dependent = "true") private List agencies = new ArrayList(); @Persistent private List subAgents = new ArrayList(); @Persistent private Date createdOn = new Date(); } Here is the servlet code: public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException,ServletException { Datastore ds = new Datastore(); //This is a custom class that fetches the data from datastore HttpSession session = request.getSession(); session.setAttribute("isAdmin", request.getParameter("isAdmin")); Agent agent = ds.getAgentById(request.getParameter("id")); session.setAttribute("master", agent); session.setAttribute("type","Agent"); } I would like to mention again that this runs fine in local SDK, but doesn't work on production. I get null values for session attributes. -- 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: Reserved URLs clarification
Filed an issue about this ambiguity. Please see http://code.google.com/p/googleappengine/issues/detail?id=5983 -- Alexander -- 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: After set "Max Idle Instances" to 1 instead 3, no slow startup warnings in my app log. Magic!
GAE docs says: http://code.google.com/appengine/docs/adminconsole/performancesettings.html#Setting_the_Number_of_Idle_Instances (... Max Idle Instances ...) Setting a low maximum means your application costs less to run, but may encounter more startup latency during spikes in request volume. Setting a high maximum means that your application will cost more to run, but will encounter less latency during spikes in request volume. But the reality is on the contrary. On Sep 30, 8:04 pm, Tapir wrote: > Before the change, with "Max Idle Instances" set to 3, there is a slow > startup warning almost every 5 minutes, which make the user experience > intolerable. > > Hope google will fix this bug soon. This would be a serous bug. > Details in this > thread:http://groups.google.com/group/google-appengine/browse_thread/thread/... > Filed an issue > here:http://code.google.com/p/googleappengine/issues/detail?id=6015&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] "Max Idle Instances" == 1, now my app how 2 instances running for a quite long while
Instances help QPS* Latency*RequestsErrors Age Memory Availability 0.083 95.2 ms 57 0 0:16:14 83.9 MBytes Dynamic Icon Dynamic 0.000 0.0 ms 1 0 0:18:28 79.9 MBytes Dynamic Icon Dynamic GAE docs says: (http://code.google.com/appengine/docs/adminconsole/ performancesettings.html#Setting_the_Number_of_Idle_Instances) ... You will not be charged for instances over the specified maximum. Google will only charge me one of the running instances? -- 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: Feature Request to Switch Accounts at the Dashboard
You can use 2 different browsers, On Oct 1, 8:45 pm, Joshua Smith wrote: > 6018 > > If you, like me, wear multiple hats (professional and pro-bono), and keep > them separate with separate accounts, then you, like me, find it really > annoying to switch between those hats in the dashboard. Please star my > feature request. > > Thanks. > > -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: "Max Idle Instances" == 1, now my app how 2 instances running for a quite long while
On Oct 2, 8:07 am, Tapir wrote: > Instances help QPS* Latency* Requests Errors Age Memory > Availability > 0.083 95.2 ms 57 0 0:16:14 83.9 MBytes > Dynamic Icon Dynamic > 0.000 0.0 ms 1 0 0:18:28 79.9 MBytes Dynamic Icon > Dynamic My app just encountered a long slow loading: here is new instances Instances help QPS* Latency*RequestsErrors Age Memory Availability 0.050 14589.0 ms 1 0 0:00:26 80.8 MBytes Dynamic Icon Dynamic 0.000 0.0 ms 2 0 0:31:51 80.0 MBytes Dynamic Icon Dynamic You will find gae instance scheduler is not willing to using the idle instance, but tries to create an instance and let the visitor wait 15 seconds to load the page. There MUST be a big problem in the instance schedule! > > GAE docs says: > (http://code.google.com/appengine/docs/adminconsole/ > performancesettings.html#Setting_the_Number_of_Idle_Instances) > ... You will not be charged for instances over the specified maximum. > > Google will only charge me one of the running instances? -- 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: "Max Idle Instances" == 1, now my app how 2 instances running for a quite long while
On Oct 2, 8:18 am, Tapir wrote: > On Oct 2, 8:07 am, Tapir wrote: > > > Instances help QPS* Latency* Requests Errors Age > > Memory > > Availability > > 0.083 95.2 ms 57 0 0:16:14 83.9 MBytes > > Dynamic Icon Dynamic > > 0.000 0.0 ms 1 0 0:18:28 79.9 MBytes Dynamic > > Icon Dynamic > > My app just encountered a long slow loading: here is new instances > Instances help QPS* Latency* Requests Errors Age Memory > Availability > 0.050 14589.0 ms 1 0 0:00:26 80.8 MBytes > Dynamic Icon Dynamic > 0.000 0.0 ms 2 0 0:31:51 80.0 MBytes Dynamic Icon > Dynamic > > You will find gae instance scheduler is not willing to using the idle > instance, but tries to create an instance and let the visitor wait 15 > seconds to load the page. > There MUST be a big problem in the instance schedule! Just found there is a type error in title, "how" should be "shows" > > > > > > > > > > > GAE docs says: > > (http://code.google.com/appengine/docs/adminconsole/ > > performancesettings.html#Setting_the_Number_of_Idle_Instances) > > ... You will not be charged for instances over the specified maximum. > > > Google will only charge me one of the running instances? -- 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: "Max Idle Instances" == 1, now my app how 2 instances running for a quite long while
On Oct 2, 8:18 am, Tapir wrote: > On Oct 2, 8:07 am, Tapir wrote: > > > Instances help QPS* Latency* Requests Errors Age > > Memory > > Availability > > 0.083 95.2 ms 57 0 0:16:14 83.9 MBytes > > Dynamic Icon Dynamic > > 0.000 0.0 ms 1 0 0:18:28 79.9 MBytes Dynamic > > Icon Dynamic > > My app just encountered a long slow loading: here is new instances > Instances help QPS* Latency* Requests Errors Age Memory > Availability > 0.050 14589.0 ms 1 0 0:00:26 80.8 MBytes > Dynamic Icon Dynamic > 0.000 0.0 ms 2 0 0:31:51 80.0 MBytes Dynamic Icon > Dynamic > > You will find gae instance scheduler is not willing to using the idle > instance, but tries to create an instance and let the visitor wait 15 > seconds to load the page. > There MUST be a big problem in the instance schedule! Another long loading, the instance scheduler is still not willing to use the idle instance but lets the visitor wait for 12 seconds. Instances help QPS* Latency*RequestsErrors Age Memory Availability 0.050 11925.0 ms 1 0 0:00:27 75.7 MBytes Dynamic Icon Dynamic 0.000 0.0 ms 2 0 0:41:08 80.0 MBytes Dynamic Icon Dynamic > > > > > > > > > > > GAE docs says: > > (http://code.google.com/appengine/docs/adminconsole/ > > performancesettings.html#Setting_the_Number_of_Idle_Instances) > > ... You will not be charged for instances over the specified maximum. > > > Google will only charge me one of the running instances? -- 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: "Max Idle Instances" == 1, now my app how 2 instances running for a quite long while
On Oct 2, 8:25 am, Tapir wrote: > On Oct 2, 8:18 am, Tapir wrote: > > > > > > > > > > > On Oct 2, 8:07 am, Tapir wrote: > > > > Instances help QPS* Latency* Requests Errors Age > > > Memory > > > Availability > > > 0.083 95.2 ms 57 0 0:16:14 83.9 MBytes > > > Dynamic Icon Dynamic > > > 0.000 0.0 ms 1 0 0:18:28 79.9 MBytes Dynamic > > > Icon Dynamic > > > My app just encountered a long slow loading: here is new instances > > Instances help QPS* Latency* Requests Errors Age > > Memory > > Availability > > 0.050 14589.0 ms 1 0 0:00:26 80.8 MBytes > > Dynamic Icon Dynamic > > 0.000 0.0 ms 2 0 0:31:51 80.0 MBytes Dynamic > > Icon Dynamic > > > You will find gae instance scheduler is not willing to using the idle > > instance, but tries to create an instance and let the visitor wait 15 > > seconds to load the page. > > There MUST be a big problem in the instance schedule! > > Another long loading, the instance scheduler is still not willing to > use the idle instance but lets the visitor wait for 12 seconds. > > Instances help QPS* Latency* Requests Errors Age Memory > Availability > 0.050 11925.0 ms 1 0 0:00:27 75.7 MBytes > Dynamic Icon Dynamic > 0.000 0.0 ms 2 0 0:41:08 80.0 MBytes Dynamic Icon > Dynamic I really don't understand why gae will create 2 instances for my app even if I set the "Max Idle Instances" with 1. In fact, my app runs better with one instances than 2 instances, under the current instance scheduler implementation. > > > > > > > > > > > > GAE docs says: > > > (http://code.google.com/appengine/docs/adminconsole/ > > > performancesettings.html#Setting_the_Number_of_Idle_Instances) > > > ... You will not be charged for instances over the specified maximum. > > > > Google will only charge me one of the running instances? -- 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] To GAE team, could you open source your instance scheduler?
I think this is very helpful for the GAE project. -- 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: "Max Idle Instances" == 1, now my app how 2 instances running for a quite long while
On Oct 2, 8:07 am, Tapir wrote: > Instances help QPS* Latency* Requests Errors Age Memory > Availability > 0.083 95.2 ms 57 0 0:16:14 83.9 MBytes > Dynamic Icon Dynamic > 0.000 0.0 ms 1 0 0:18:28 79.9 MBytes Dynamic Icon > Dynamic It even created 3 instances now: Instances help QPS* Latency*RequestsErrors Age Memory Availability 0.133 235.1 ms32 0 0:02:53 91.1 MBytes Dynamic Icon Dynamic 0.033 0.0 ms 1 0 0:00:05 51.2 MBytes Dynamic Icon Dynamic 0.000 0.0 ms 7 0 1:26:14 83.9 MBytes Dynamic Icon Dynamic > > GAE docs says: > (http://code.google.com/appengine/docs/adminconsole/ > performancesettings.html#Setting_the_Number_of_Idle_Instances) > ... You will not be charged for instances over the specified maximum. > > Google will only charge me one of the running instances? -- 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] recently, there are more and more "Transaction rolled back due to failure during commit" in my app log
The job in the transaction is very simple, just increase a stat number. This problem is becoming serous from yesterday. My app is almost nothing changes for 2 months. The only changes is I set the "Max Idle Instances" from 3 to 1. Related? Data - Number Of Transaction Fails 10.01 - 17 (up to current) 09.30 - 42 09-29 - 2 09-28 - 0 09-27 - 2 09-26 - 7 09-25 - 1 09-24 - 6 09-23 - 3 -- 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: "Max Idle Instances" == 1, now my app how 2 instances running for a quite long while
On Oct 2, 9:10 am, Tapir wrote: > On Oct 2, 8:07 am, Tapir wrote: > > > Instances help QPS* Latency* Requests Errors Age > > Memory > > Availability > > 0.083 95.2 ms 57 0 0:16:14 83.9 MBytes > > Dynamic Icon Dynamic > > 0.000 0.0 ms 1 0 0:18:28 79.9 MBytes Dynamic > > Icon Dynamic > > It even created 3 instances now: > Instances help QPS* Latency* Requests Errors Age Memory > Availability > 0.133 235.1 ms 32 0 0:02:53 91.1 MBytes > Dynamic Icon Dynamic > 0.033 0.0 ms 1 0 0:00:05 51.2 MBytes Dynamic Icon > Dynamic > 0.000 0.0 ms 7 0 1:26:14 83.9 MBytes Dynamic Icon > Dynamic New slow loading: QPS*Latency*RequestsErrors Age Memory Availability 0.050 10759.0 ms 1 0 0:00:41 75.8 MBytes Dynamic Icon Dynamic 0.000 0.0 ms 7 0 1:33:52 83.8 MBytes Dynamic Icon Dynamic > > > > > > > > > > > GAE docs says: > > (http://code.google.com/appengine/docs/adminconsole/ > > performancesettings.html#Setting_the_Number_of_Idle_Instances) > > ... You will not be charged for instances over the specified maximum. > > > Google will only charge me one of the running instances? -- You received this message because you are subscribed to the Google Groups "Google App Engine" group. To post to this group, send email to google-appengine@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en.
RE: [google-appengine] Re: Feature Request to Switch Accounts at the Dashboard
Incognito window works well. I use Chrome for Login A, and Chromium for Login b that works well too. -Original Message- From: google-appengine@googlegroups.com [mailto:google-appengine@googlegroups.com] On Behalf Of Tapir Sent: Saturday, October 01, 2011 5:09 PM To: Google App Engine Subject: [google-appengine] Re: Feature Request to Switch Accounts at the Dashboard You can use 2 different browsers, On Oct 1, 8:45 pm, Joshua Smith wrote: > 6018 > > If you, like me, wear multiple hats (professional and pro-bono), and keep them separate with separate accounts, then you, like me, find it really annoying to switch between those hats in the dashboard. Please star my feature request. > > Thanks. > > -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. -- 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] Anyone uses the go language for app engine app?
How about the performance and instance startup time? -- 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: After set "Max Idle Instances" to 1 instead 3, no slow startup warnings in my app log. Magic!
Do you really think the shotgun approach of swamping the group with lots of little similiar postings with either just a comment/statement and sometimes a question will get you the information you want ? -- 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/-/jZqf4vERvf8J. 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: After set "Max Idle Instances" to 1 instead 3, no slow startup warnings in my app log. Magic!
On Oct 2, 12:20 pm, Tim Hoffman wrote: > Do you really think the shotgun approach of swamping the group with lots of > little > similiar postings with either just a comment/statement and sometimes a > question > will get you the information you want ? no, and I don't know why. No gae people answer my questions. I really don't know why. I don't know if they have noticed this problem or not. And I don't know if they have confirmed or denied this problem. But the problem is really there, this problem makes my website visitors very unhappy. What should I do, do you think? -- 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.