@Vadim1899

Как запускать функцию по таймеру php?

Всем привет!
Делаю некое голосование для аватарок ВК. Суть в том, что дается 30 секунд, люди голосуют и после 30 сек запускает функция, которое делает определенное действие.
Риал-тайм реализован через сокеты на пхп
И вот для такого "серверного" таймера придумал следующие реализации:
1. На клиенте стоит скрипт, который по завершении раунда отправляет запрос на сокет сервер. Предполагаемые минусы - любой может "подшаманить код" и начать раунд раньше, а так же если на сайте никого нет, срабатывать ничего не будет
2. while + sleep на сокет сервере. Но непонятно, как параллельно основному коду его реализовать
3. Реализовать через разницу в unix-time. То есть перед началом раунда сохраняется текущее время, далее после каждого запроса вычисляется разница времени перед началом раунда и при отправленном запросе, если 30 или больше секунд, запускаем функцию. Минусы - раунд может не длится ровно 30 секунд, а намного дольше

Если это глупый вопрос и уг-реализации, сильно не ругайте, пытаюсь постепенно разобраться в пхп
Ну и собсно вопрос: как реализовать так, чтобы каждые 30 секунд запускалась определенная функция? (ну или каждые 30 секунд тот же echo выводить)
  • Вопрос задан
  • 355 просмотров
Пригласить эксперта
Ответы на вопрос 2
GavriKos
@GavriKos
Cron.
Пора уже такие вопросы канонизировать, что ли...
Ответ написан
eXcNightRider
@eXcNightRider
FullStack Web Developer | DevOps
// Cron.
Не согласен так как крон сам не умеет запускать задачи чаще чем раз в минуту - без колхоза не обойтись, а это уже слишком сложно для данной задачи.

//Риал-тайм реализован через сокеты на пхп
Значит у вас есть cli-скрипт, запускаемый из консоли.
Если сокеты в php реализованы с помощью Ratchet, то вот вам мой ответ по ссылке.
клац
Там подробно всё расписано - уверен, что поможет на 100%
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы