J'ai une table dans MySQL qui représente une file d'attente de liens à traiter. Les liens sont traités par une application externe, un par un, et supprimés à la fin. Il s'agit d'une file d'attente à volume élevé et j'ai plusieurs instances de l'application de traitement, réparties sur plusieurs serveurs.
Comment puis-je m'assurer que chaque enregistrement est sélectionné par une seule application? Existe-t-il un moyen de signaler / verrouiller l'enregistrement?
En ce moment, pour éviter que deux ou plus ne récupèrent le même lien, je n'autorise chaque instance qu'à récupérer un certain ensemble d'enregistrements (basé sur le MOD de leur ID), mais ce n'est pas un moyen transparent d'augmenter le traitement de la file d'attente accélérer simplement en ajoutant de nouvelles instances.