[google-appengine] Simple task processing class - Worker

2011-10-01 Thread Emlyn
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

2011-10-01 Thread Joshua Smith
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?

2011-10-01 Thread Jason Collins
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!

2011-10-01 Thread Bruno Sandivilli
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 ?

2011-10-01 Thread solsTiCe d'Hiver
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?

2011-10-01 Thread Gerald Tan
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

2011-10-01 Thread Gerald Tan
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?

2011-10-01 Thread P K
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

2011-10-01 Thread Juzer
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

2011-10-01 Thread Alexander Konovalenko
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!

2011-10-01 Thread Tapir
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

2011-10-01 Thread Tapir
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

2011-10-01 Thread Tapir
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

2011-10-01 Thread Tapir


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

2011-10-01 Thread Tapir


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

2011-10-01 Thread Tapir


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

2011-10-01 Thread Tapir


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?

2011-10-01 Thread Tapir
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

2011-10-01 Thread Tapir


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

2011-10-01 Thread Tapir
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

2011-10-01 Thread Tapir


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

2011-10-01 Thread Brandon Wirtz
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?

2011-10-01 Thread Tapir
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!

2011-10-01 Thread Tim Hoffman
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!

2011-10-01 Thread Tapir
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.