Имеется грубо говоря, подобный скрипт Мне нужно, чтобы он выполнялся 3 минуты ровно.
while(true){
"тело скрипта"
sleep(10);
}
Данный скрипт находится на хостинге. Из документации PHP мы знаем:
max_execution_time
set_time_limit()
Не включает в ограничение Sleep, System, запросы http.
Если я поставлю лимиты на свой скрипт
max_execution_time 300
set_time_limit(300)
От этого скрипт не будет выполняться 3 минуты, т.к. в команде есть Sleep();
Server: nginx
Но я не могу изменить настройки ngnix на хостинге
Я подумал, а вдруг можно запустить через ajax, установив timeout
$.ajax({
url: "https://url.con/ajax/test.php", // куда отправляем запрос
error: function(){
// будет вызвана в случае если пройдет 3 секунды, но ответа так и не было
alert('no');
},
success: function(){
// что-то делаем тут
alert('good');
},
timeout: 3000 // установка 3-х секундного тайм-аута
});
Но при выходе тайм аута, скрипт продолжает выполняться.
Что же делать в таком случае?
задача будет запускаться через Cron