" that a transaction can complete successfully and the API still returns an 
error." - yes, it is a bitch. I suffered form this for a long time. Finally 
I understood that all  tasks  and especially transactional tasks MUST be 
completely idempotant. GAE docs do not stress that enough but that is 
mandatory. Otherwise you fall into a trap you just described.
How to achieve idempontency is app specific. For example I use TaskId 
extensively  as a entity key to create/update. That way I am guaranteed that 
double execution will update the same entity. 

-- 
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/-/XjZZzB7n300J.
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