Всем добрый вечер. Запускаю скрипт через cron каждую минуту. За эту минуту нужно сделать несколько операций с разрывом в 10 сек.
Делаю это так
set_time_limit(60);
while(true) {
echo "Test";
sleep(10);
echo "Test";
}
Но почему то сообщение выводиться только 1 раз. Что делаю не так?
Нужно понимать, что set_time_limit относится не к реальному времени, а к времени работы самого php. sleep и другие операции ввода-вывода не считаются.
Предлагаю более точный подход:
$start = microtime(true); // засекаем время начала
do {
doSomething(); // вызов вашей функции
sleep(10);
} while (microtime(true) - $start < 60); // прошла ли минута?
В остальном, нужно дебажить скрипт в отрыве от крона, корректно обрабатывать ошибки - возможно сервисы, к которым вы обращаетесь, ограничивают рейт обращений.
Запуск крона каждые 15 секунд:
* * * * * your_script
* * * * * sleep 15; your_script
* * * * * sleep 30; your_script
* * * * * sleep 45; your_script
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости