Установка DocPrinter Broker¶
Общие замечания¶
-
Так как данное приложение написано на
python, его установка — копирование файлов с кодом на сервер. Основные трудности могут возникнуть с настройкой окружения — установкой интерпретатораpythonи необходимых модулей -
Обновление можно осуществить простой подменой файлов с исходным кодом. Возможно нужно будет ещё установить недостающие модули. После этого нужно просто перезапустить приложение.
-
Рекомендуется всегда использовать виртуальное окружение — таким образом можно будет легко избежать проблем с версиями
pythonили отдельных модулей, если на том же сервере потребуется запустить что-то ещё -
Все операции (кроме установки) проводятся в
root-папке приложения (там, где находятся папкиsource,configи т.д.)
Установка python¶
Для работы приложения нужен интерпретатор версии не ниже 3.10. Если в системе
уже установлен python более ранней версии его удалять не нужно.
Если нужны несколько версий python на одной машине, то
- WINDOWS: В командах создания виртуального окружения используется утилита
py launcher, которая идёт с установщиком python версии выше 3.3
- LINUX: придётся использовать не такую удобную pyenv,
гайд тут
Особенности установки на Windows¶
- для запуска установки нужны права администратора
- если запуск приложения будет не из-под администратора, то нужно установить
pythonдля всех пользователей и обязательно проверить, что папка назначения доступна всем пользователям - я отключаю ограничение на длину путей, чтобы потом не было проблем (хотя на практике я их и не встречал)
Настройка виртуального окружения¶
Для того чтобы установить модули только для конкретного приложения, создаётся виртуальное окружение. Его нужно производить той версией интерпретатора, которая потом нужна для запуска приложения
Создание виртуального окружения¶
-
С дефолтной версии интерпретатора
-
Если нужна определённая версия
Загрузка виртуального окружения¶
Установка необходимых модулей¶
Установка производится из файла requirements.txt
Установка из интернета¶
Простая загрузка под текущую архитектуру пакетов whl¶
Warning
Пытаться загружать пакеты не под текущую архитектуру крайне не рекомендуется (могут быть проблемы с компилируемыми пакетами)
Сохранить все пакеты:¶
Отдельный пакет, уже установленный в окружении (если на предыдущем пункте был
загружен, например tar.gz вместо whl) :
Установка из локальных пакетов whl¶
Локально хранимые файлы пакетов whl под нужную платформу должны быть в
папке dependencies
Запуск приложения¶
Запуск производится простой командой
Нужно будет ввести мастер-пароль для расшифровки хранимых паролей
Если нужно настроить автозапуск брокера, а необходимость в хранении паролей
отсутствует, то нужно использовать опцию командной строки --no_crypt
— мастер-пароль не будет запрошен.
Warning
ВНИМАНИЕ! Если в настройках сервера или агента присутствуют поля с
суффиксом _enc, вылетит ошибка, так как расшифровать их невозможно.
Сообщение об успешном запуске выглядит так:

Сетевую доступность можно проверить по адресу
Там будет вывод о статусе агентов и самого брокера:{
"requests": {
"total": 164,
"byAgentType": {
"VBA": {
"total": 15,
"byAgent": {
"10.10.100.124:3001": 15
}
},
"MYOFFICE": {
"total": 57,
"byAgent": {
"python_agent1:5000": 54,
"python_agent2:5000": 3
}
},
"R7": {
"total": 92,
"byAgent": {
"r7_agent1:5002": 91,
"r7_agent2:5002": 1
}
}
}
},
"VBA": {
"10.10.100.124:3001": {
"XLqueueLength": 0,
"WDqueueLength": 0,
"PPqueueLength": 0,
"foldersOnDisk": 0,
"XLprocesses": 0,
"WDprocesses": 0,
"PPprocesses": 0,
"isAlive": true,
"isActive": false,
"responseStatus": 200
}
},
"MYOFFICE": {
"python_agent1:5000": {
"jobsSinceStart": 54,
"foldersOnDisk": 0,
"runningSubprocesses": 0,
"activeJobs": 0,
"maxParallelJobs": 10,
"isAlive": true,
"isActive": true,
"responseStatus": 200
},
"python_agent2:5000": {
"jobsSinceStart": 3,
"foldersOnDisk": 0,
"runningSubprocesses": 0,
"activeJobs": 0,
"maxParallelJobs": 10,
"isAlive": true,
"isActive": true,
"responseStatus": 200
}
},
"R7": {
"r7_agent1:5002": {
"jobsSinceStart": 91,
"foldersOnDisk": 0,
"runningSubprocesses": 1,
"activeJobs": 0,
"maxParallelJobs": 10,
"isAlive": true,
"isActive": true,
"responseStatus": 200
},
"r7_agent2:5002": {
"jobsSinceStart": 1,
"foldersOnDisk": 0,
"runningSubprocesses": 1,
"activeJobs": 0,
"maxParallelJobs": 10,
"isAlive": true,
"isActive": true,
"responseStatus": 200
}
}
}
Автозапуск¶
Windows¶
Как таковой системы авто запуска нет, достаточно создать bat-файл с командами
активации виртуального окружения и запуска брокера и положить его/его ярлык в
автозагрузку. Такой автозапуск будет работать только при входе пользователя
в систему (логине). После запуска приложение будет работать до окончания работы
сессии пользователя.
Чтобы брокер запускался вместо с загрузкой системы вне зависимости от логина,
нужно обернуть его в службу ОС. Для этого можно использовать стороннюю утилиту
nssm (настройка крайне проста, не забудьте включить сохранение вывода консоли
в файл). В таком режиме возможно, что первая выгрузка окончится с ошибкой
(далее будет работать стабильно, причины не изучались).
Linux¶
Пока не настроена и не тестирована работа через systemd. Предложений по авто
запуску вместе с системой нет. Для того, чтобы приложение продолжило работать
после окончания терминальной сессии, можно использовать команду nohup:
Дополнительно¶
Не рекомендуется напрямую давать доступ к брокеру через сеть, желательно
использовать реверс-прокси, например nginx