конфликт бд )

Печать RSS
466

V
Автор
Пришелец
0
Помогли транзакции. free тебе посоветую mysql_query("LOCK TABLES `table` WRITE;"), так удобней и надёжнее..

Землянин
0
varloc (9 Сентября 2013 / 02:09)
Помогли транзакции. free тебе посоветую mysql_query("LOCK TABLES `table` WRITE;"), так удобней и надёжнее..
Я же сказал, что писалась собственная база данных работающая на файлах. smile
И этот способ подойдет даже когда у тебя 20 запросов одновременно т.к пока инициализирующий поток не удалит файл все остальные стоят в очереди. Если на php 5.5 сидим можно использовать для этого генератор который будет выбрасывать состояние доступности в метод инициализирующий запрос.
V
Автор
Пришелец
0
12. free, Ну дело ваше. Сколько нужно тогда ждать, если есть запрос? К примеру 2-ой поток подождал секунду, что бы 1-ый завершил запрос, а 3-ий его опередил smile а есть ещё 7 потоков..

Землянин
0
varloc (9 Сентября 2013 / 12:18)
12. free, Ну дело ваше. Сколько нужно тогда ждать, если есть запрос? К примеру 2-ой поток подождал секунду, что бы 1-ый завершил запрос, а 3-ий его опередил smile а есть ещё 7 потоков..
а зачем нам ставить секунду достаточно вполне и 0.1 или даже 0.05... не думаю что запрос UPDATE заставит себя долго ждать да и нагрузка при такой частоте обновления будет практически нулевой (у нас выполняется лишь метод file_exists()) в любом случае в разы производительнее выполнений доп. запросов бд.
А для того, что бы после первого потока, второго не опередил третий реализуется стек, но я думаю, что это крайности даже при 10-15 одновременных потоках в данной задаче (у нас ведь не OCR и клиенту результат вернется достаточно быстро каким бы он в очереди не был)...
Стикеры / Теги / Правила / Топ тем / Топ постов / Поиск