СБИС API2 правильное использование — различия между версиями
(→Как быстро отправлять документы) |
м (added Category:СБИС using HotCat) |
||
Строка 56: | Строка 56: | ||
* Последняя мера, сначала надо убедиться, что текущее железо загружено. | * Последняя мера, сначала надо убедиться, что текущее железо загружено. | ||
+ | |||
+ | [[Категория:СБИС]] |
Версия 13:18, 3 февраля 2017
Как правильно авторизоваться
Авторизовываться отдельно не надо. Правильно написать отдельную функцию для исполнения любых запросов СБИС - которая при необходимости будет вызывать авторизацию. В функцию тем или иным способом должны быть переданы сессия, url (тестовый fix-online.sbis.ru или рабочий online.sbis.ru), название метода и его параметры
Алгоритм работы:
- Если сессия не указана
- пробуем авторизоваться - не удалось возвращаем ошибку.
- Выполняем запрос
- если возвращается 401 ошибка (пользователь не авторизован)
- пробуем авторизоваться - не удалось возвращаем ошибку
- повторяем запрос
- если возвращается 401 ошибка (пользователь не авторизован)
- Возвращаем результат
Если запросы к СБИС выполняются асинхронно (рекомендуется), то функция авторизации должна быть с блокировкой предотвращающей одновременную авторизацию из нескольких запросов.
Как быстро обрабатывать события
Метод получения новых событий необходимо вызывать в цикле, пока не вернет пустой результат.
Полученный список оптимальнее всего раздать обработчикам событий и обрабатывать каждое событие из списка асинхронно.
По окончании обработки события/событий получаем новую порцию событий и повторяем процедуру.
Не забывайте обрабатывать служебные события аналогичным алгоритмом. Получили список служебных событий, асинхронно обработали каждое из них. Повторяем пока события не кончились.
Как быстро отправлять документы
Отправка документов состоит из следующих этапов:
- Получение данных из информационной системы
- Формирование электронных документов
- Подписание документов
- Отправка документов
- Обновление статуса документа
доля времени приходящаяся на каждый из этих этапов зависит от многих различных параметров (размер документов, ширины канала связи, мощности ПК, загруженности ИС) и может существенно колебаться.
Занимаясь ускорением отправки документов нужно анализировать и ускорять каждый из этих этапов.
Пути ускорения 3:
- оптимизировать код
- распараллеливание исполнения кода
- увеличение мощности железа.
Оптимизация кода
- ликвидируйте лишние вызовы - Анализируйте однотипные вызовы и кэшируйте. К самым легко кешируемым данным относятся - данные о нашей организации и контрагенте.
- пытайтесь обойтись без файловых операций
Распараллеливание исполнения кода
- Даже если у Вас синхронная ИС, СБИС предоставляет интеграционные решения позволяющие выполнять этапы отправки асинхронно. Максимальная скорость будет достигнута если Ваша ИС будет работать без перерыва.
Увеличение мощности железа
- Последняя мера, сначала надо убедиться, что текущее железо загружено.