uaperson
Новичок
Всем доброго дня!
Есть такой вопрос острый по принципу написание скрипта, в котором не происходило бы одновременного выполнения взаимозависимых операций.
Объясняю подробнее:
получается, что если в течении 15 секунд, пока выполняется код-действие и еще не обновился статус, произойдет еще один запрос к этому скрипту, то он сможет выполниться второй раз, хотя по алгоритму это действие должно происходить всего лишь один раз. Как можно этого избежать?
Эта проблема преследует меня в разных вариантах и без БД, в том числе, и я не могу придумать 100% решения, которое будет проверять действительно актуальный статус. Надежда только на вашу помощь.
Прошу не предлагать вариант, поставить UPDATE перед кодом-действием, так как есть ситуации, где UPDATE обновляет не статус, а устанавливает рассчитанное значение, сформированное кодом-действием.
Есть такой вопрос острый по принципу написание скрипта, в котором не происходило бы одновременного выполнения взаимозависимых операций.
Объясняю подробнее:
PHP:
<?php
$q = "SELECT status FROM table WHERE id='2'";
$conn = mysql_query($q);
$row = mysql_fetch_assoc($conn);
if($row{"status"}==0) {
// Какой-то код действий, который выполняет 15 секунд.
// обновляем статус
mysql_query("UPDATE table SET status='1' WHERE id='2'");
}
else die("Error");
Эта проблема преследует меня в разных вариантах и без БД, в том числе, и я не могу придумать 100% решения, которое будет проверять действительно актуальный статус. Надежда только на вашу помощь.
Прошу не предлагать вариант, поставить UPDATE перед кодом-действием, так как есть ситуации, где UPDATE обновляет не статус, а устанавливает рассчитанное значение, сформированное кодом-действием.