Это консольная программа на Go, реализующая worker pool — группу воркеров (горутины), которые параллельно обрабатывают задачи из общей очереди. Вы можете добавлять или удалять воркеров в реальном времени, а также отслеживать их статус.
- Программа запускается и создаёт пул с двумя воркерами по умолчанию.
- Все воркеры читают из общего канала
inputи "обрабатывают" задачи (спят 60 секунд). - Управление производится с клавиатуры: можно добавлять задачи, воркеров и смотреть их статус.
-
+
➤ Добавить нового воркера. -
-<ID>
➤ Удалить воркера с указанным ID.
Пример:-1удалит воркера с ID 1. -
list
➤ Показать список всех активных воркеров, их статус (idle/working) и последнюю задачу (если есть). -
<текст>
➤ Любая строка, не начинающаяся с+,-, илиlistбудет интерпретироваться как задача. Она попадёт в очередь и будет обработана одним из воркеров.
+ # Добавить нового воркера (Worker 2)
Hello World # Отправляется на обработку
list # Показать статус воркеров
Вывод:
Active workers:
- Worker 0 [working] (last task: "Hello World")
- Worker 1 [idle] (no task yet)
- Worker 2 [idle] (no task yet)