1

Многопоточная выгрузка сообщений

Topic: Многопоточная выгрузка сообщений

Добрый день!

Понадобилось выгружать с помощью SDK сообщения по всем объетам с Wialon Hosting в несколько потоков.
Работает по стандартному алгоритму:

1. Логин (получение sid)
2. Получение списка доступных объектов
3. Разделение списка доступных объектов на x частей (сейчас по 5 в одной части)

Далее для каждой части запускается отдельный поток, таких потоков определенное количество (сейчас 10 потоков)
Алогоритм работы одного потока следующий:

1. Логин (получение sid)
2. Создается и выполняется пакетный запрос (core/batch) для получения сообщений x объектов
3. Сообщения обрабатываются
4. Логаут

В случае возникновения ошибки на любом этапе работы потока он разрушается и перезапускается снова, т.е. по новой цикл с 1 по 4.

Проблема следующая - при запуске все работает какое-то недолгое время, после чего в потоках на этапе 1 (логин) возникает ошибка 1003 (Только один запрос разрешается в данный момент времени). Так происходит также недолгое время и все снова начинает работать обычном режиме. Такоц цикл периодичен и не прекращается - работает/1003/работает/1003. Причем кажется что это примерно один и тот же промежуток времени.

Есть одно подозрение - потоки одновременно пытаются запрашивать логин, в  wialon приходит одновременно какое-то количество запросов и получается ошибка. Через какое-то время потоки рассинхронизируются и начинают делать это в разное время и все начинает работать по прежнему.

Подскажите, из-за чего такое может происходить?

2

Многопоточная выгрузка сообщений

Re: Многопоточная выгрузка сообщений

Есть определенные ограничения на определенные операции. Сколько у Вас потоков?

At the dark side of telematics...
3

Многопоточная выгрузка сообщений

(edited by storumproject 06/01/2014 18:44:46)

Re: Многопоточная выгрузка сообщений

shal wrote:

Есть определенные ограничения на определенные операции. Сколько у Вас потоков?

Сейчас 10, но планирую увеличить

Подскажите какого рода ограничения?

4

Многопоточная выгрузка сообщений

Re: Многопоточная выгрузка сообщений

Ограничения на разного рода операции, защита от ботов и все такое. С одного IP сейчас разрешается 60 операций login в течение 2 минут. Вероятно этот лимит у Вас срабатывает. Постарайтесь не выходить из системы. Возможно тогда сработают иные ограничения. Рекомендую также количество потоков уменьшить до 3-5.

At the dark side of telematics...
5

Многопоточная выгрузка сообщений

Re: Многопоточная выгрузка сообщений

shal wrote:

Ограничения на разного рода операции, защита от ботов и все такое. С одного IP сейчас разрешается 60 операций login в течение 2 минут. Вероятно этот лимит у Вас срабатывает. Постарайтесь не выходить из системы. Возможно тогда сработают иные ограничения. Рекомендую также количество потоков уменьшить до 3-5.

Спасибо, буду пробовать