I'm looking for advice regarding the best way to dedicate App Engine 
instances for running certain deferred tasks.   

We want to be sure that deferred tasks, as well as cron tasks, can never 
penalize the processing of actual client requests.   

One way to do this would be to have a separate GAE project, dedicated to 
running these tasks, and use the Cloud Tasks api 
(https://cloud.google.com/tasks/docs/creating-appengine-tasks) and create 
tasks with a specific target project.   But this second 'batch' GAE project 
would need to have read/write access to the Ndb datastore of the first 
project, which does not seem to be possible.

Another way, which seems easier, would be to use a specific version of the 
same project, which would be dedicated to the handling of these batch 
tasks.   Thus when we deploy version v103 of the project, we would also 
deploy v103-batch, and then when queuing tasks we would specify that the 
target version is v103-batch.   This would avoid the need of sharing 
Datastore between two projects.   This technique was suggested in an SO 
post by Guido Von Rossum 
(https://stackoverflow.com/questions/12074754/google-app-engine-app-interoperability),
 
but that was  back in 2012, things may have changed since then.

Thank you for your inputs.

-- 
You received this message because you are subscribed to the Google Groups 
"Google App Engine" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/google-appengine/794f4421-b2d8-46f2-9377-55e474854f59n%40googlegroups.com.

Reply via email to