Mutex, semaforo?

Buen dia, pues tengo una pequeña duda que vendria siendo sobre
concurrencia
para hacer algun tipo de sincronizacion

lo que pasa es que tengo en la base de datos una tabla de rangos de
polizas
validas por ejemplo
num_inicial num_final ultima_asignada
1 100 99
150 200 0

y si el cliente quiere 2 entonces se le asignaria la 100 y la 150
el problema es que pasa si 2 clientes entran al “mismo tiempo” y ven que
esta disponible la 100 y el segundo cliente quiere 3 supongamos
entonces el primero se quedaria con 100, 150 y el segundo con 100, 150,
151
lo cual no puede ser
digo no me a pasado en el entorno de pruebas, pero se supone que cuando
este
en produccion pudiera darse el caso a lo que, seria de
poner algun tipo de semaforo o mutex o algo antes de entrar al proceso
que
saca los folios a asignar y liberarlo al final, que solo 1 usuario pueda
estar ejecutando el proceso que asigna las polizas, para asi evitar ese
problema.

mi duda es como hago eso en ruby on rails =S
alguna idea?

el proceso que te da cuales polizas te tocarian ya esta, solo faltaria
dejarlo en un proceso sincronizado o algo por el estilo.

Ing. Omar S. Jimenez Becerra

Hola,

el problema es que pasa si 2 clientes entran al “mismo tiempo” y ven
que esta disponible la 100 y el segundo cliente quiere 3 supongamos
entonces el primero se quedaria con 100, 150 y el segundo con 100,
150, 151 lo cual no puede ser
busca por optimistic_locking en la doc (o en los libros de rails). Con
eso lo que hace rails es guardar un campo en cada update. Si al guardar
el registro ese campo ha cambiado de valor (alguien actualizó a la vez)
te dará una
excepción.
saludos,

javier ramírez

orale =D muchisimas gracias, me metere un buen clavado creo que me
solucionara mi problema
y gracias que de verdad hasta flash salio la respuesta jojojojo la puse
y al
ratito que revise ya habias
contesta dije WOOW.

pues muchas gracias javier

Ing. Omar Sebastian Jimenez Becerra

2008/1/22, javier ramirez [email protected]:

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs