The state of the process is not of interest, just which instance of
many processes it is (i.e. there is no process specific state to store
and query).  I've got side entities all setup so that I can reliably
make multi-entity group changes (i.e. processing will continue across
requests, even from different clients).

I'm currently just using a random number as a process instance
identity, to determine if a change was left hanging by the same
process so its write lock (custom not GAE) can be expired immediately,
as the processes are not threaded, rather then waiting the full
timeout period.  Rather then a random number I could use an entity key
path, but that's more time consuming to generate and then it needs to
periodically have a datetime field updated so the staleness of it can
be used determined if the entity can be deleted.

I figure GAE already got some kind of process identifier around
(likely an entity in the datastore) as part of the infrastructure, so
its just a matter of providing an API to access it (I don't care if
its hashed if there some concern about security, but there shouldn't
be since one app is never supposed to be able to get any data outside
its domain).

On Oct 8, 9:27 pm, pr3d4t0r <[EMAIL PROTECTED]> wrote:
> On Oct 8, 6:03 pm, Josh Heitzman <[EMAIL PROTECTED]> wrote:
>
> > As os.getpid is not supported by GAE, is there another API that
> > provides a unique (preferably across all of GAE) identifier for the
> > process?  I'd like to use this to identify if an incomplete update
> > sequence (spanning entity groups, so no it can't be done in a
> > transaction) was left hanging by the current process or another, as if
> > it was the current it can be immediately restarted, where as if it is
> > another, it'll have to wait a time period before continuing the
> > sequence.
>
> Because of the distributed nature of App Engine, about the only way
> you have of ensuring that something committed/finished to completion
> is to use transactions and entities.  You could create an entity group
> that tracks your process(es) state and updates it as various stages
> are completed.  Remember that there is no guarantee that your process
> will run on any given machine across subsequent calls.
>
> Cheers,
>
> pr3d4t0rhttp://www.istheserverup.comhttp://www.teslatestament.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 [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to