Как реализовать «многопоточное» клиент-серверное приложние на PHP?
Приложение основано на процессах.
Процесс абстрактен. Он имеет длительность и методы:
- start();
- pause();
- resume();
- stop(),
а также умеет отдавать данные о своем прогрессе.
В системе есть 2 вида пользователей:
- user;
- admin.
Каждый пользователь может иметь несколько процессов.
User может создавать(добавлять), начинать, останавливать, продолжать процесс.
Admin может то же, что и User и удалять процессы любого пользователя.
Прогресс по каждому процессу отображается в реальном времени в прогрессбаре.
Желательно:
Сохранять доступ к процессам даже после закрытия/обновления страницы пользователем.
у вас дожен быть один мастер-процесс, который будет обрабатывать команды из web-интерфейса и создавать/останавливать воркеры. Связь мастера с воркерами можно организовать через ZeroMQ (как и связь web-интерфейса с мастер-процессом).