Tengo un trabajo de larga ejecución que actualiza 1000 de grupos de entidades. Quiero comenzar un segundo trabajo después que tendrá que suponer que todos esos elementos se han actualizado. Debido a que hay tantos grupos de entidades, no puedo hacerlo en una transacción, así que acabo de programar el segundo trabajo para que se ejecute 15 minutos después de que termine el primer uso de las colas de tareas.¿Cómo saber cuándo se completó la actualización del almacén de datos de Google AppEngine HRD?
¿Hay una manera mejor?
¿Es seguro suponer que 15 minutos prometen que el almacén de datos está sincronizado con mis llamadas anteriores?
Estoy usando alta replicación.
En los videos de Google IO sobre HRD, ofrecen una lista de formas de lidiar con la coherencia final. Uno de ellos fue "aceptarlo". Algunas actualizaciones (como las publicaciones de Twitter) no necesitan ser consistentes con la próxima lectura. Pero también dijeron algo así como "hey, solo estamos hablando de milisegundos en un par de segundos antes de que sean consistentes". ¿Ese marco de tiempo está documentado en otro lugar? ¿Es seguro asumir que esperar 1 minuto después de escribir antes de volver a leer significará que todas mis escrituras previas están allí en la lectura?
La mención de que es en la marca de 39:30 en este video http://www.youtube.com/watch?feature=player_embedded&v=xO015C3R6dw
He dado una respuesta parcial a continuación, pero ¿puede darme más información sobre lo que está tratando de hacer exactamente? – mjaggard
Básicamente estoy insertando o actualizando miles de entidades. Cuando ese trabajo esté completo, necesito aplicar un rango a los artículos. Así que ejecuto una consulta que selecciona todos los registros y los ordena por el campo que me preocupa por el ranking. Luego actualizo los rangos en otro tipo de entidad. Ese rango obviamente estará desactivado si las entidades faltan en la consulta. – user963263