Me preguntaba acerca de las mejores prácticas para sincronizar varias instancias azure que ejecutan el mismo rol. Más precisamente, quiero evitar que varias funciones de los trabajadores trabajen en la misma unidad de trabajo.Sincronización entre roles Azure
Las colas azules no parecen ayudar en este asunto. Una opción es usar una tabla SQL con bloqueos y procedimientos almacenados; pero usar la sincronización sql en Azure parece un poco incómodo.
¿Alguna idea?
Editar, mi detallada (pero simplificado problema) es el siguiente:
- Hay n objetivos.
- Se debe realizar una unidad de trabajo en cada objetivo en un intervalo específico (digamos 30 segundos, pero es diferente para cada objetivo).
- Tengo m trabajadores (alojado en h instancias).
- El procesamiento de una unidad de trabajo puede tardar entre 10 segundos y 1 hora.
La idea es que tengo un planificador que pone las unidades de trabajo en una cola de Azure, y cada uno de los m trabajadores a leer estos y procesarlos.
El problema:
- worker1 comienza a trabajar en unidad1 (que es con respecto a destino1) - éste tomará mucho tiempo, por ejemplo, 10 minutos
- transcurren 30 segundos
- la planificador pone otra unidad de trabajo para target1, digamos unit13
- worker2 comienza a trabajar en unit13, en contra de la misma destino1 - no es bueno
Tengo algunas ideas, pero que no parecen nublado suficiente, por lo que me interesa vea qué soluciones aplicaría para este problema.
¿Por qué crees que las colas no funcionarán aquí? Las colas son la forma tradicional de coordinar el trabajo que se debe hacer una vez. Hay algunos matices seguros, pero el caso del 90% es con colas. – dunnry
Estoy de acuerdo con la respuesta de David, las colas son generalmente una buena opción. Aunque hay momentos en los que no puedes hacer colas. Pero si ese es el caso, describa su problema en detalle e intentaremos brindarle una mejor respuesta. –
Mientras tanto, publiqué una idea para UserVoice para Azure: http://entlib.uservoice.com/forums/101257-windows-azure-integration-pack/suggestions/2050987-distributed-synchronization?ref=title algo que podría ser útil para aquellos casos en los que las Colas simplemente no funcionarán –