Ver Mensaje Individual
  #5 (permalink)  
Antiguo 28/04/2011, 05:42
prda
 
Fecha de Ingreso: diciembre-2010
Mensajes: 4
Antigüedad: 13 años, 3 meses
Puntos: 0
Respuesta: Cómo hacer proceso atómico en aplicación web? o todos los pasos o ninguno.

Gracias juanito 1712! perdona por no responder antes pero he estado liado con este tema. Tu opinión de poner un campo "flagFinalizado" es buena, te has explicado perfectamente. Al final he hecho una combinación de ambas opiniones. El ejemplo que puse no era el único caso donde se me podían quedar procesos incompletos, así que para unos casos me ha venido bien la opción de zoroRoronoa y para otros la tuya.

Para el que le interese habría que hacer algo del estilo a esto:
select * from Factura f WHERE flagFinalizado = false and DATEDIFF(DATE_FORMAT(NOW(),'%Y-%m-%d'), fecha)>='2'
siendo fecha un campo java.sql.Date cuyo valor sería algo como '2011-04-28' (sin la hora). La consulta anterior selecciona las facturas que se han quedado incompletas y tienen más de dos días. (puse lo de dos días para que no hubiera conflicto si hay un cambio de día mientras se está haciendo el proceso. Por ejemplo la factura se esta creando el dia 27 a las 23:59:50 y y se termina el dia 28 a las 00:01:50) el script de comprobación pensaría que ya ha pasado un día. Pero en realidad han pasado dos minutos desde que se empezo el proceso y se finalizó. No se si me he explicado.