PHP

Как в PHP сделать так чтобы по истечению 30 секунд происходило какое то действие?

Без крона,
Хороший вопрос, если кто ответит решением буду благодарен. Может направлю в нужную сторону, я на долгоиграющих php скриптах использую либо серверный крон, либо с консоли запускаю, там правило 30 секунд не работает, можно увеличить время через переопределение инит параметра, но у меня не получалось, у браузера похоже свои счётчики. Можно скрипту сказать что не нужно держаться сеанса браузера. Можно запустить вообще в свой полет, но это неправильно. Видел кучу скриптов к примеру сжималки картинок которые отрабатывают часами, пока подобными задачами для фронта не страдал, думаю они прост с бекенда по ajax отправляют данные в n-время, чтоб браузер не думал что скрипт подвис, ну и инит знает что скрипт долгоиграющий
Радик Шарифуллин
Радик Шарифуллин
3 307
Лучший ответ
Таймер прописать....
Карэн Меликов
Карэн Меликов
95 223
Смотря какое действие.

Есть функция sleep(), но она полностью блокирует выполнение скрипта + можете упереться в ограничение хостинга set_time_limit.

Если действие можно перенести на JavaScript лучше так и сделать, на нем намного проще сделать таймер. Если обязательно нужен PHP есть вариант вызывать скрипт через JavaScript (fetch и задержка setTimeout)
Андрей Манжос
Андрей Манжос
66 387
Без крона, в пхп можешь только об угол убиться.
Олег Игоревич за это мы и любим PHP!
Без крона только F5 нажимать
Берёте ставите таймер, можно в while через time(), емли лимит уперелся в 30 секунд, регистрируете функцию завершения через register_shutdown_function, которая вызывает тот же самый скрипт через http соединение с данными работы где остался предыдущий скрипт, чтобы он продолжил работу, и это будет повторятся, пока не выполнится работа.
Барак Обама
Барак Обама
2 666
поставить задачу которая через 30 секунд код пхп меняет)
я так от балды написал.