Mysql
 sql >> Base de données >  >> RDS >> Mysql

Comment implémenter le verrouillage pessimiste dans une application web php/mysql ?

Vous devez implémenter un champ LOCKDATE et LOCKWHO dans votre table. J'ai fait cela dans de nombreuses applications en dehors de PHP/Mysql et c'est toujours de la même manière.

Le verrouillage est terminé lorsque le TTL est passé, vous pouvez donc faire une soustraction de dates en utilisant NOW et LOCKDATE pour voir si l'objet a été verrouillé pendant plus de 30 minutes ou 1h comme vous le souhaitez.

Un autre facteur consiste à considérer si l'utilisateur actuel est celui qui verrouille l'objet. C'est pourquoi vous avez également besoin d'un LOCKWHO. Cela peut être un user_id de votre base de données, un session_id de PHP. Mais limitez-vous à quelque chose qui identifie un utilisateur, une adresse IP n'est pas un bon moyen de le faire.

Enfin, pensez toujours à une fonction de déverrouillage en masse qui réinitialise simplement tous les LOCKDATE et LOCKWHO...

Bravo