• Как выполнять функцию PHP раз в 3 секунды?

    Tomio
    @Tomio
    backend developer (python, php)
    Если вам надо каждые 3 секунды слать запрос, то тут самый оптимальный вариант будет такой:
    1. Устанавливаете supervisord, настраиваете его конфиг и настраиваете конфиг запускаемого php скрипта (в этом нет ничего сложного, инструкции в интернете имеются)
    2. Сам php скрипт у вас будет состоять из бесконечного цикла while, в начале которого у вас будет задержка в 3 секунды:
    while (true){
        sleep(3);
        // do some cool (or not) stuff
    }

    3. Запускаете супервизор и дело в шляпе)

    В чём плюс такого подхода:
    1. Цикл while (true) никогда не закончится и будет выполнять ваш код каждые N-секунд.
    2. Супервизор демонизирует ваш скрипт, и он, по сути, становится сервисом, а не просто php скриптом
    3. В конфиге супервизора для вашего скрипта можно указать параметр autorestart=true, и в случае, если скрипт упадет, супервизор его перезапустит без вашего участия (вдруг хост, куда вы по апи стучитесь, упадет на какое-то время)
    Ответ написан
    1 комментарий