abler98
@abler98
Software Engineer

PHP. Как единожды выполнить действие не раньше указанного времени?

Допустим, есть запись в базе данных с полем created_at, в котором содержится время создания записи. Мне нужно сделать так чтоб, по истечении одной минуты и более, первый запрос к серверу выполнял действие, то есть проверка наличия записей старше одной минуты и там уже выполнять указания. Вроде ничего сложного, но если > 2 пользователей одновременно отправят запрос, сервер просто не успеет выполнить один запрос, как отправляется другой и получается, что действие выполняется два раза. Как с этим быть?
  • Вопрос задан
  • 304 просмотра
Пригласить эксперта
Ответы на вопрос 2
sergoslav_0
@sergoslav_0
PHP / Magento / Laravel
Добавьте еще одно поле в базу, что-то типа "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
Ответ написан
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
Как с этим быть?


man at
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы