СБИС API2 правильное использование — различия между версиями

Материал из razgovorov.ru
Перейти к: навигация, поиск
(Новая страница: «==Как правильно авторизоваться== Авторизовываться отдельно не надо. Правильно написать…»)
 
(Как быстро отправлять документы)
Строка 44: Строка 44:
 
# увеличение мощности железа.  
 
# увеличение мощности железа.  
  
'''Оптимизация кода'''
+
Оптимизация кода
 +
 
 
* ликвидируйте лишние вызовы - Анализируйте однотипные вызовы и кэшируйте. К самым легко кешируемым данным относятся - данные о нашей организации и контрагенте.
 
* ликвидируйте лишние вызовы - Анализируйте однотипные вызовы и кэшируйте. К самым легко кешируемым данным относятся - данные о нашей организации и контрагенте.
 
* пытайтесь обойтись без файловых операций
 
* пытайтесь обойтись без файловых операций
  
'''Распараллеливание исполнения кода'''
+
Распараллеливание исполнения кода
 +
 
 
Даже если у Вас синхронная ИС, СБИС предоставляет интеграционные решения позволяющие выполнять этапы отправки асинхронно. Максимальная скорость будет достигнута если Ваша ИС будет работать без перерыва.  
 
Даже если у Вас синхронная ИС, СБИС предоставляет интеграционные решения позволяющие выполнять этапы отправки асинхронно. Максимальная скорость будет достигнута если Ваша ИС будет работать без перерыва.  
  
'''Увеличение мощности железа'''
+
Увеличение мощности железа
 +
 
 
Последняя мера, сначала надо убедиться, что текущее железо загружено.
 
Последняя мера, сначала надо убедиться, что текущее железо загружено.

Версия 13:17, 3 февраля 2017

Как правильно авторизоваться

Авторизовываться отдельно не надо. Правильно написать отдельную функцию для исполнения любых запросов СБИС - которая при необходимости будет вызывать авторизацию. В функцию тем или иным способом должны быть переданы сессия, url (тестовый fix-online.sbis.ru или рабочий online.sbis.ru), название метода и его параметры

Алгоритм работы:

  • Если сессия не указана
    • пробуем авторизоваться - не удалось возвращаем ошибку.
  • Выполняем запрос
    • если возвращается 401 ошибка (пользователь не авторизован)
      • пробуем авторизоваться - не удалось возвращаем ошибку
      • повторяем запрос
  • Возвращаем результат

Если запросы к СБИС выполняются асинхронно (рекомендуется), то функция авторизации должна быть с блокировкой предотвращающей одновременную авторизацию из нескольких запросов.

Как быстро обрабатывать события

Метод получения новых событий необходимо вызывать в цикле, пока не вернет пустой результат.

Полученный список оптимальнее всего раздать обработчикам событий и обрабатывать каждое событие из списка асинхронно.

По окончании обработки события/событий получаем новую порцию событий и повторяем процедуру.

Не забывайте обрабатывать служебные события аналогичным алгоритмом. Получили список служебных событий, асинхронно обработали каждое из них. Повторяем пока события не кончились.

Как быстро отправлять документы

Эффективность отправки в различных решения СБИС

Отправка документов состоит из следующих этапов:

  • Получение данных из информационной системы
  • Формирование электронных документов
  • Подписание документов
  • Отправка документов
  • Обновление статуса документа

доля времени приходящаяся на каждый из этих этапов зависит от многих различных параметров (размер документов, ширины канала связи, мощности ПК, загруженности ИС) и может существенно колебаться.

Занимаясь ускорением отправки документов нужно анализировать и ускорять каждый из этих этапов.

Пути ускорения 3:

  1. оптимизировать код
  2. распараллеливание исполнения кода
  3. увеличение мощности железа.

Оптимизация кода

  • ликвидируйте лишние вызовы - Анализируйте однотипные вызовы и кэшируйте. К самым легко кешируемым данным относятся - данные о нашей организации и контрагенте.
  • пытайтесь обойтись без файловых операций

Распараллеливание исполнения кода

Даже если у Вас синхронная ИС, СБИС предоставляет интеграционные решения позволяющие выполнять этапы отправки асинхронно. Максимальная скорость будет достигнута если Ваша ИС будет работать без перерыва.

Увеличение мощности железа

Последняя мера, сначала надо убедиться, что текущее железо загружено.