Kolejka w bazie MySQL

0

Temat z serii rozpatrywanie sytuacji teoretycznych ;]

Załóżmy, że mam skrypt, który jest wykonywany przez dziesiątki/setki użytkowników na raz. Każdy z nich może wykonać jakąś operację, która jest dopisywana do tabeli o nazwie np. "kolejka". Operacje te mają być wykonane podczas następnego wywołania skryptu, ale tylko raz.
Niby sprawa prosta, skrypt na początku sprawdza czy jest coś w kolejce i to wykonuje, a następnie usuwa operacje z kolejki. Problem mi się nasuwa w tym, co będzie jeśli użytkownik pierwszy wywoła skrypt, a 0.00001s po nim inny użytkownik. Dla niego muszą już być dostępne wyniki obliczeń z kolejki.

Blokować jakoś dostep do tabeli poprzez skrypt wykonujący kolejkę (ustwienie jakiejś flagi dostępnej w każdym wywołaniu skryptu, że kolejka jest przetwarzana), a reszta czeka w pętli na wykonanie owego skryptu i dopiero wtedy działa dalej?

0

A wykorzystać transakcje i ustawić prawa do tabeli na wyłączne dla jednego połączenia?
Teoretyzuję, bo mimo, iż długo pracuję na różnych bazach, to wstyd przyznać - nie używałem transakcji [wstyd]

1 użytkowników online, w tym zalogowanych: 0, gości: 1