Есть скрипт, задача которого раз в N секунд получать новые сообщения на странице ВК методом getDialogs.
На моём сервере cron отсутствует, поэтому я пользуюсь внешними сайтами, один из них cron-job.org. Вызываю вот этот свой скрипт раз в минуту.
set_time_limit(59);
require_once("start_func.php");
//ждём когда последний запущенный скрипт закончит работу
$time_shift = 0;
while(file_get_contents("cron.txt")!=0 & $time_shift<59)
{
sleep(1);
$time_shift++;
}
//говорим всем о том что запускаем скрипт
file_put_contents("cron.txt", 1);
$interval = 3;
$start_time = time();
//выполняем скрипт $i раз
while($time_shift<57 & time()-$start_time<57)
{
start_func(); //Делаем запрос к ВК АПИ
sleep($interval);
}
//говорим всем о том, что текущий скрипт закончил выполнение
file_put_contents("cron.txt", 0);
Часто при выполнении запросов к ВК случаются непонятные задержки на 10-180 секунд и сайт, который вызывал скрипт присылает мне на почту письмо с ошибкой. После 100 ошибок прекращает вызывать мой скрипт. Ошибка: превышение времени выполнения (увеличивать время ожидания ответа на cron-job не хочется).
Как мне построить алгоритм так, чтобы время его выполнения не превышало 60 секунд и функция запроса вызывалась раз в N секунд?