Remmi
@Remmi

Как лучше организовать параллельный процесс в PHP CLI?

Добрый день!

Есть PHP-скрипт в режиме CLI, работающий в бесконечном цикле, который раз в 10 секунд генерирует набор данных с привязкой к текущему времени для объектов #1 .. #N и заносит их в БД. Список объектов запрашивается из БД - и о появлении нового объекта скрипт узнаёт именно так.

Было решено его дополнить такой штукой: при добавлении в БД объекта #N+1 - для этого объекта генерируются данные за последние 30 дней. После чего объект встаёт в очередь к остальным и для него также начинают генерироваться данные раз в 10 секунд с записью в БД.

Вопрос: как это лучше реализовать в условиях Windows Server? Запускать отдельный процесс при появлении нового объекта и отправлять родителю сигнал о завершении (например, через сокет)? Если так, то как его запускать? Или можно это как-то сделать в одном процессе?
  • Вопрос задан
  • 2515 просмотров
Решения вопроса 1
Remmi
@Remmi Автор вопроса
Всё решилось в пределах одного скрипта:
1. Был сделан динамический список элементов
2. После добавления нового запускалась генерация данных для него в этом же потоке
3. Затем без задержки генерировались данные по всем элементам для периода, когда шла генерация из п.2 (занимала 20-30 секунд, надо было быстро сгенерировать 2-3 пропущенных шага)
4. После этого генерация шла как обычно уже с добавленным элементом
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@Calc
Может тут найдется решение?
php.net/manual/en/class.thread.php
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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