Обучение Урок 7 из 12
Очередь заявок
- Цель
- Один процесс кладёт заявки из Excel в очередь, второй берёт их по одной и подаёт в веб-форме
- Время
- 40 минут
Файлы примеров
- 05_queue_producer.flow.json — 3,8 КБ
- 06_queue_consumer.flow.json — 8,6 КБ
- form.html — 8,7 КБ
- requests.xlsx — 6,8 КБ
Что понадобится #
- Оркестратор, подключённый к нему робот и студия, подключённая к оркестратору («Оркестратор» → «Подключение…») — как в уроке Публикация и запуск в оркестраторе. Как всё поставить — в разделе Установка документации.
- На компьютере робота — Microsoft Edge: второй процесс подаёт заявки в браузере.
- Файлы примеров — два процесса:
05_queue_producer.flow.jsonиrequests.xlsx— процесс, который добавляет заявки в очередь;06_queue_consumer.flow.jsonиform.html— процесс, который обрабатывает заявки в веб-форме.
Очередь делит работу между роботами: каждый элемент — одна заявка. Элемент берёт один робот; если робот упал, элемент повторится, а если в данных ошибка — будет ждать оператора.
Шаг 1. Создайте очередь #
В панели оркестратора откройте «Очереди» и нажмите «Создать очередь». Имя — „Заявки“. Остальное оставьте как есть: «Повторов при сбое» — сколько раз повторить элемент после системной ошибки, «Без дубликатов по ссылке» не даст загрузить одну заявку дважды.

Шаг 2. Процесс, который добавляет заявки #
- Создайте папку
Заявки в очередьи положите в неё05_queue_producer.flow.jsonиrequests.xlsx: процесс читает таблицу из своей папки, а в пакет публикации входит вся папка. - В студии нажмите «Открыть» и выберите
05_queue_producer.flow.json. - Процесс читает строки таблицы шагом
excel.readRangeи добавляет каждую заявку в очередь шагомorch.queueAddItem: данные элемента — строка таблицы, ссылка элемента — номер заявки (З-1001…). - «Оркестратор» → «Опубликовать…» → «Опубликовать».
Шаг 3. Запустите его #
В панели откройте «Процессы», выберите опубликованный процесс и нажмите «Запустить». Когда задание завершится, в «Очереди» → „Заявки“ → «Элементы» появятся пять новых элементов — по одному на строку таблицы.

Шаг 4. Процесс, который обрабатывает заявки #
- Создайте папку
Обработка заявокс файлами06_queue_consumer.flow.jsonиform.html. - Откройте процесс в студии: в цикле он берёт элемент шагом
orch.queueGetItem, заполняет форму в браузере и записывает результат шагомorch.queueSetResult. Когда элементов не осталось, цикл заканчивается. - Опубликуйте процесс и запустите его так же, как первый.
Чтобы увидеть бизнес-ошибку, допишите в requests.xlsx строку с новым номером (З-1006) и словом ПЛОХО в ФИО,
запустите первый процесс, а затем второй.
Шаг 5. Запуск по очереди #
Чтобы второй процесс запускался сам, когда в очереди появилась работа, откройте «Расписания» → «Создать расписание»
в «Когда запускать» выберите «По очереди», «Очередь» — „Заявки“, «Минимум элементов» — 1. Подробнее о расписаниях — в уроке Расписание.
Что должно получиться #
- В очереди „Заявки“ все элементы из таблицы успешные; у каждого в результате — номер заявки
Z-…. - Элементы со словом ПЛОХО — с бизнес-ошибкой и понятным текстом причины.
- В «Задания» оба запуска завершились, а в журнале задания видны шаги обработки каждой заявки:
Заявка З-1001 подана, номер Z-….
Если не получилось #
| Что видно | Что сделать |
|---|---|
| Ошибка „Очередь … не найдена в области …“ | Имя очереди в панели и в аргументе queue процессов должно совпадать: „Заявки“. Очередь должна быть в той же рабочей области, что и процесс. |
| Первый процесс упал с „файл не найден“ | requests.xlsx должен лежать в папке процесса до публикации: в пакет попадает содержимое папки. Опубликуйте новую версию. |
| Элементы в работе, но не обрабатываются | Задание второго процесса ждёт свободного робота — проверьте «Роботы». Элемент, который слишком долго в работе, вернётся в очередь сам. |
| Все элементы с системной ошибкой | На роботе нет Edge или форма не открывается: посмотрите ошибку в журнале задания. После исправления элементы повторятся сами. |
Подробнее об очередях — в документации: Очереди.