PHP. Как единожды выполнить действие не раньше указанного времени?
Допустим, есть запись в базе данных с полем created_at, в котором содержится время создания записи. Мне нужно сделать так чтоб, по истечении одной минуты и более, первый запрос к серверу выполнял действие, то есть проверка наличия записей старше одной минуты и там уже выполнять указания. Вроде ничего сложного, но если > 2 пользователей одновременно отправят запрос, сервер просто не успеет выполнить один запрос, как отправляется другой и получается, что действие выполняется два раза. Как с этим быть?
Добавьте еще одно поле в базу, что-то типа "status", когда первый пользователь запускает процесс, status устанавливается в "process" когда завершается успехом "pending", если неудаче "error".
И перед каждым запуском этого процесса по запросу проверяй статус + время.
time > 2m + status-pending = run
time > 2m + status-error = run
time < 2m + status-pending = NO
time < 2m + status-error = run
status-processing = NO
Я примерно так и делаю, но как я уже написал, два запроса выполняется одновременно и второй запрос не ожидает изменений из первого, а просто выполняется.