@Damnedest

Запуск задач с точностью до секунды?

Есть ли готовые решения для создания очереди событий, которое позволит указывать время выполнения события с точностью до секунды? Также очень важно, чтобы был клиент для PHP.
  • Вопрос задан
  • 3304 просмотра
Пригласить эксперта
Ответы на вопрос 7
slik
@slik
Если не найдёте решение под php, то посмотрите в сторону node.js пакет kue, там есть json api.
Ответ написан
Kindman
@Kindman
Можно из рнр добавлять задания в хрон или в планировщик
Ответ написан
lampa
@lampa
Я делал примерно так: функцию в бесконечный цикл, каждую секунду проверяю базу данных, если что-то есть, то выполняю и удаляю строку из БД.
Ответ написан
AnViar
@AnViar
1. cron запускает с точностью до минуты
2. sleep в скрипте позволяет увеличить точность до секунд.
Ответ написан
taliban
@taliban
php программист
Как Вы хотите определять наличие задач не проверяя их наличие? Если они в базе появляются, то нужно в базе смотреть новые задачи.
Как Вариант можете смотреть изменения файла (размер/дата доступа) с нужной таблицей, если таблица в myisam то каждая таблица хранится отдельно. В итоге если появились в ней задачи то дата доступа и размер увеличатся,
Ответ написан
@phasma
что-то вроде:

* * * * * sleep ;
Ответ написан
@BasilioCat
если я правильно понял исходные данные, то вам нужно две вещи — сервер очередей и часы =)
Рекомендую beanstalkd и следующую схему работы
— сервер (приложение, занимающееся обработкой задач) запущен ВСЕГДА. Он слушает очередь в beanstalkd в ожидании задачи
— клиент помещает в очередь задание со временем исполнения
— сервер при получении задания форкается, дочерний процесс ждет наступления указанного в задаче времени, и запускает задачу на выполнение
— после выполнения задачи она удаляется из очереди. В случае преждевременной кончины процесса сервера, задания упадут обратно в очередь beanstalkd
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы