Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 11 Pomógł: 0 Dołączył: 20.08.2013 Ostrzeżenie: (0%)
|
Chcę pobrać jeden losowy wiersz z tabeli. Robię to za pomocą 2 skryptów, odpalanych w tym samym czasie.
Jak zabezpieczyć się przed tym, aby rekord nie został pobrany przez oba te skrypty, ale tylko przez jeden ? Wiem że mogę sobie odpowiednio oflagować rekord, ale jeśli drugi skrypt odpali się kilka milisekund później to jest możliwość że też zdąży go pobrać zanim ten pierwszy go oflaguje. Czy transakcje rozwiążą problem, czy należy zastosować blokownie tabel? |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 11 Pomógł: 0 Dołączył: 20.08.2013 Ostrzeżenie: (0%)
|
ok, a co w przypadku większej ilości skryptów odpytujących?
Owszem wspomniałem o dwóch, ale docelowo ma być ich kilkanaście. Jeśli wszystkie wystartują w tym samym czasie i każdy z nich będzie blokować tabele, chyba nie za dobrze wpłynie to na szybkość działania. Chociaż może, przy tych ilościach to nie będzie mieć jeszcze takiego znaczenia. Jak sądzicie? |
|
|
|
dav Zabezpieczenie przed podwójnym pobraniem rekordu 20.08.2013, 14:58:50
PHP_Addicted Pierwsze co mi przychodzi do głowy to właśnie lock... 20.08.2013, 15:32:39
Pyton_000 A czy ten wiersz ma wracać z powrotem no póli dost... 21.08.2013, 19:30:18
sazian jedyne sensowne rozwiązanie to blokowanie tabel, p... 21.08.2013, 20:14:50
dav Dzięki za odpowiedź.
Jest tylko problem bo jesli ... 25.08.2013, 22:00:25
irmidjusz Jeśli transakcje, to serialized, a lock typu write... 25.08.2013, 22:16:28 ![]() ![]() |
|
Aktualny czas: 1.01.2026 - 09:44 |