¿Cómo detecto fallas inesperadas en los roles de los trabajadores y reproceso de datos en esos casos?

Quiero crear un servicio web alojado en Windows Azure. Los clientes subirán archivos para su procesamiento, la nube procesará esos archivos, producirá los archivos resultantes, el cliente los descargará.

Supongo que usaré roles web para manejar solicitudes HTTP y roles de trabajo para el procesamiento real y algo como Azure Queue o Azure Table Storage para rastrear solicitudes. Supongamos que será Azure Table Storage: un registro de "solicitud" por archivo subido por el usuario.

Un problema importante de diseño es que procesar un solo archivo puede llevar de un segundo a diez horas.

Así que espero el siguiente caso: se inicia un rol de trabajador, llega a Azure Table Storage, encuentra una solicitud marcada como "lista para procesar", la marca como "se está procesando", comienza el procesamiento real. Normalmente procesaría el archivo y marcaría la solicitud como "procesada", pero ¿y si muere inesperadamente?

A menos que me ocupe de eso, la solicitud permanecerá en el estado "se está procesando" para siempre.

¿Cómo hago un seguimiento de las solicitudes marcadas como "se está procesando" pero abandonadas? ¿Qué mecanismo en Windows Azure sería más conveniente para eso?

Respuestas a la pregunta(4)

Su respuesta a la pregunta