1

Ошибка: Только один запрос разрешается в данный момент времени

(02/02/2018 14:58:59 отредактировано Denial)

Тема: Ошибка: Только один запрос разрешается в данный момент времени

Здравствуйте!

Месяц назад завершили интеграцию 1С:Управление Автотранспортом Проф и Виалон.  Все работало прекрасно. Но буквально 2 дня назад
загрузка стала вылетать с ошибкой  Wialon:"Только один запрос разрешается в данный момент времени".

Алгоритм работы стандартный: логин по токену, получение sid, получение списка машин, запрос пробега, очистка результата перед получением данных очередной автомашины и логаут. Никаких параллельных потоков, все строго последовательно (получили данные, очистили результат, снова запросили).

Опытным путем выявил: если вставлять задержки в 2-3 секунды перед получением данных за определенный интервал времени (мы берем 15 минут) и после очистки результата отчета - все проходит отлично, ошибок нет. Но это не дело, так как время загрузки данных очень возрастает.

Подскажите хотя бы направление: куда копать?  Ведь незадолго до этого все работало прекрасно, ни код 1С ни настройки Виалон  мы не меняли.

Не изменились ли у Виалона ограничения по запросу данных? Например, не более 10 запросов в минуту?

2

Ошибка: Только один запрос разрешается в данный момент времени

Re: Ошибка: Только один запрос разрешается в данный момент времени

Здравствуйте Denial ,

Были изменены лимиты на запрос получения отчетов (запрос "report/exec_report"). Этот лимит сейчас составляет не более 30 запросов в течение 60 секунд.
Такое решение было принято для уменьшения нагрузки и спама на наши сервера.

Могли бы вы подсказать, какое у вас количество запросов и за какой промежуток времени, а также могли бы вы сказать (в PM) имя пользователя , с которого отправляются запросы, и когда последний раз отправлялись данные запросы?

С Уважением,

Maksim Shvets
Business Analyst
Gurtam
3

Ошибка: Только один запрос разрешается в данный момент времени

(07/02/2018 12:03:59 отредактировано Denial)

Re: Ошибка: Только один запрос разрешается в данный момент времени

Здравствуйте!

Теперь мне  понятно, почему 29-30 запрос отчета отрабатывается нормально, а 31 вылетает с ошибкой.
Смотрите: мы загружаем данные, скажем, за 1 день по 20 машинам. В 1С  устанавливается интервал загрузки и хранения данных - мы установили 15 минут. Значит, 24 часа делятся на интервалы по 15 минут 24*4 = 96 интервалов по 1 машине (с 00-00по 00-15, с 00-15 по 00-30 и т.д.) и каждый интервал отрабатывается в запросе  "report/exec_report".

Мы пробовали на начальном этапе внедрения устанавливать интервал сутки (логично же - берем 1 день, интервал ставим сутки). Но практика показала, что очень сильно падает точность пробега, уровня топлива и т.п.   Наиболее оптимальным периодом стали именно 15 минут.

Хотел уточнить, что так работает СТАНДАРТНЫЙ механизм загрузки данных Виалон в 1С Рарус: Управление Автотранспортом 8. Получается, данная ошибка будет возникать у ВСЕХ пользователей, имеющих автопарк более 1 машины и ставящих интервал загрузки и хранения данных менее 1 часа. (Если машина одна и интервал 1 час то 24 запроса в минуту укладываются в новый регламент).

4

Ошибка: Только один запрос разрешается в данный момент времени

Re: Ошибка: Только один запрос разрешается в данный момент времени

Мы изменили ограничение, чтобы можно было пропускать бОльший поток запросов в промежуток времени: 200 запросов в 5 минут. Согласно вашим описаниям  в 15 минут можно запросить данных для автопарка в 600 автомобилей.

Но остается непонятным утверждение, что интервал в сутки дал неточный результат, поэтому приняли 15 минут. Чем, по вашему мнению, обусловлено падение точности при использовани интервала в сутки? Также не могу не заметить, что между 15 минутами и сутками огромная разница. Как вы пришли от первого ко второму?

Tatsiana Shmihelskaya
Business Analyst, Gurtam
5

Ошибка: Только один запрос разрешается в данный момент времени

(08/02/2018 09:47:15 отредактировано Denial)

Re: Ошибка: Только один запрос разрешается в данный момент времени

Здравствуйте!

Скажем, устанавливаем  в 1С интервал загрузки сутки и загружаем данные пол вчерашнему дню с 00-00 по 23-59. "Набежало", скажем 8 моточасов. Хорошо, меняем  интервал загрузки на 15 минут и вновь загружаем вчерашний день  с 00-00 по 23-59.  Смотрим: а моточасов уже 9!   Идем в Виалон Хостинг - действительно, 9 моточасов за вчера.  Так мы пришли к интервалу в 15 минут (дальнейшее снижение до 5 и 1 минуты точность уже не повышает).

Здесь я что хочу сказать: проблема возможна именно в 1С, в загрузке данных.  Беда в том, что разработчик 1С: УАТ Рарус  шифрует тексты исходных модулей для "защиты интеллектуальной собственности" (по словам самой компании) и отладку производить затруднительно.

6

Ошибка: Только один запрос разрешается в данный момент времени

Re: Ошибка: Только один запрос разрешается в данный момент времени

Denial , а промежуточные варианты в 30 минут, 1 или 2 часа какой результат дают?

Tatsiana Shmihelskaya
Business Analyst, Gurtam
7

Ошибка: Только один запрос разрешается в данный момент времени

Re: Ошибка: Только один запрос разрешается в данный момент времени

Добрый день!

Подскажите пожалуйста, как  лучше поступить.

У нас парк 2000 машин, руководство требует загрузку данных по пробегу, расходу, моточасам и т.д. в систему 1С (УАТ) по интервалам 15 минут. Необходимо чтобы отслеживать динамику работы ТС, и пробеги работу двигателя вне действия Путевого листа.

Модуль загрузки в УАТ подразумевает загрузку данных по каждому объекту с заданными интервалом. Если загружать данные таким образом выходит  в сутки  192000 запросов (96 интервалов * 2000 машин), и если следовать ограничению 200 запросов за 5 минут, то для загрузки необходимо 192000/200*5 = 4800 минут или 80 часов, что в принципе не возможно.

Сделал отправку группового отчета (3 таблицы, сводка, моточасы, трассировка датчиков) , где в качестве группы передается массив объектов по которым необходимо получить отчет.
Сразу все 2000 машин отправлять не стал, разбил их по группам,

Специально сделал счетчик, чтобы было не более 199 запросов за 5 минут времени. прошел цикл 199 запросов положенные 5 минут истекли, но следующий запрос уже выдавал ошибку "Только один запрос разрешается в данный момент времени".

Подскажите пожалуйста:
Каким образом идет расчет количества запросов за интервал времени (я про 200 запросов за 5 минут)?
Необходима ли пауза между запросами после выполнения первых 200 запросов?
Можно ли в групповой отчет добавить сразу 2000 объектов (в дальнейшем их будет еще больше)

Может у вас есть еще какое решение? (Варианты убрать детализацию и грузить за сутки мне уже предлагали, но передо мной четко поставленная задача требующая решения).
В отчетах нет возможности сделать группировку по интервалам, по запросам ограничение, как нам поступать?

8

Ошибка: Только один запрос разрешается в данный момент времени

Re: Ошибка: Только один запрос разрешается в данный момент времени

tolskiy.a
Добрый день

Самый простой способ - объединять запросы в core/batch Замечу, что для запроса лучше использовать POST метод, чтобы не упереться в ограницение длины GET запроса

9

Ошибка: Только один запрос разрешается в данный момент времени

Re: Ошибка: Только один запрос разрешается в данный момент времени

К сожалению core/batch не помог, так как все равно действует ограничение на количество запросов: "Не более 200 запросов report/exec_report за 5 минут". Кроме того не очень удобно разбирать таблицы их в каждом отчете по 3.