DelphiWorld
Новичок
Есть 2 класса.
Первый usersи status , в users есть свойство zayavka, которое получает в status, при вызове в несколько потоков возникает состояние гонки
метод в status примерно такой
запуская в несколько потоков метод вызывается несколько раз, соответсвенно выполняется 2 инсерта ((
попробовал сменить архитектуру БД на innoDB
все это добро заключил в транзакцию
подскажите что я делаю не так? ))
ошибке пол года, весь интернет облазил, ничего не помогает...
пробовал файлы делать типо
по логике проверка файлами должна это дело прекратить, но не тут то было ((
Первый usersи status , в users есть свойство zayavka, которое получает в status, при вызове в несколько потоков возникает состояние гонки
метод в status примерно такой
PHP:
private function Start($id)
{
if(isset($this->user->zayavka['id']))
{
//тут расчеты
mysql_query('INSERT INTO ...');
mysql_query('DELETE FROM `table_name` WHERE `id`="'.$id.'"');
unset($this->user->zayavka['id']);
}
}
попробовал сменить архитектуру БД на innoDB
все это добро заключил в транзакцию
PHP:
mysql_query('SET TRANSACTION ISOLATION LEVEL SERIALIZABLE');
mysql_query('START TRANSACTION');
...
mysql_query('COMMIT');
ошибке пол года, весь интернет облазил, ничего не помогает...
пробовал файлы делать типо
PHP:
if(!file_exists('fname.lock')) {
touch('fname.lock');
//код
unlink('fname.lock');
!file_exists('fname.lock');
}