Команда thread
thread (алиас th) запускает Dispatchable-задачи — джобы и процессы — на
переднем плане или в фоне, и управляет демонами (start/stop/status). Это
консольный вход в подсистему фоновых процессов Winter.
Что такое thread и зачем
thread — команда запуска фоновых задач и демонов.
Проблема. Часть работы не должна блокировать запрос: рассылка, обработка файла, периодическая уборка. Нужен способ запускать такие задачи вручную — для отладки или по расписанию — и управлять долгоживущими демонами.
Решение. thread запускает любой Dispatchable (джобу/процесс) на переднем
плане или в фоне (-d) и даёт управление демонами. Об этом и раздел.
Просмотр
| Субкоманда | Показывает |
|---|---|
list |
Все Dispatchable-классы, помеченные типом (Job/Process/Daemon) |
daemons |
Демоны (ThreadDaemon) с состоянием, числом форков и аптаймом |
php call thread list
php call thread daemonsЗапуск задачи
| Вызов | Действие |
|---|---|
thread <Class> |
Запуск ::start() на переднем плане |
thread <Class> -d |
Запуск ::dispatch() в фоне (печатает PID) |
php call thread main.threads.ExampleJob # на переднем плане
php call thread main.threads.ExampleJob -d # в фоне, вернёт PIDИмя резолвится из точечной нотации так же, как в script.
Управление демонами
| Вызов | Действие |
|---|---|
thread <Daemon> |
Тумблер: запущен → стоп; остановлен → старт (с -d в фоне) |
thread <Daemon> start |
Запуск в фоне |
thread <Daemon> stop |
Остановка |
thread <Daemon> status |
Состояние/PID/аптайм/форки |
thread <Daemon> status -v |
То же + ресурсы и список форков |
php call thread main.threads.Cleanup start
php call thread main.threads.Cleanup status -v
php call thread main.threads.Cleanup stopНужен pcntl
thread требует расширение pcntl — без него команда предупредит и завершится.
Флаг -d учитывается только в режиме запуска/тумблера (не в start/stop/status).
Дальше
- Продвинутое → Threads — модель фоновых процессов
- Продвинутое → Джобы —
Job::dispatch()из кода - script — разовые команды (не фоновые)