Вурдалак
Продвинутый новичок
Состояние гонки
Тут я просто примерно набросал логику моего скрипта.
Иногда случается ситуация, при которой практически одновременно 2 скрипта запрашивают timestamp, в обоих же происходит UPDATE timestamp'а и, соответственно, дважды выполняется "полезная работа".
Как лучше избежать такой ситуации? Был совет воспользоваться преимуществом mysql_insert_id(), но немного не нравится. Есть другие способы решения?
PHP:
<?php
$db->query('SELECT `timestamp` FROM ...');
if( $db->result() < time() )
{
$db->query('UPDATE ... SET `timestamp` = ' . ( time() + 3600 ));
# Выполнение какой-то полезной работы
}
?>
Иногда случается ситуация, при которой практически одновременно 2 скрипта запрашивают timestamp, в обоих же происходит UPDATE timestamp'а и, соответственно, дважды выполняется "полезная работа".
Как лучше избежать такой ситуации? Был совет воспользоваться преимуществом mysql_insert_id(), но немного не нравится. Есть другие способы решения?