Форум программистов, компьютерный форум, киберфорум
Программирование Android
Войти
Регистрация
Восстановить пароль
 
0 / 0 / 0
Регистрация: 14.08.2012
Сообщений: 138
1

Групповые сетевые запросы с задержкой

31.10.2016, 15:20. Просмотров 384. Ответов 2
Метки нет (Все метки)


Всем добрый день.

У меня есть три группы объектов находящиеся в одной Realm базе. Каждая из этих групп представляет набор тагов и другой информации, по каждому тагу я должен сделать запрос в сеть, чтобы получить id. Запрос в сеть для каждой группы объектов свой (меняется урл и ответ). Также необходимо делать запросы параллельно для каждой группы и нужно чтобы было не более 20 запросов в минуту. Программа должна работать, даже если её уже закрыли. Я пока сделал макет IntentServie но как быть дальше не знаю. Как корректно делать параллельные запросы, да ещё и с задержкой. Возможно ли вообще это сделать через IntentService корректно? Цикл "For" показал условно, чтобы лучше понять задачу. Также все ответы нужно писать в единую базу, то есть доступ должен быть у всех потоков к одной базе.

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
public class SubscribersGathering extends IntentService {
 
    private RealmResults<HashtagObject> hashtags;
    private RealmResults<SearchtagObject> searchtags;
    private RealmResults<NametagObject> nametags;
 
    public SubscribersGathering() {
        super("SubscribersGathering");
    }
 
    @Override
    protected void onHandleIntent(Intent intent) {
        Realm realmForThisThread = Realm.getDefaultInstance();
        this.hashtags = realmForThisThread.where(HashtagObject.class).findAll();
        this.searchtags = realmForThisThread.where(SearchtagObject.class).findAll();
        this.nametags = realmForThisThread.where(NametagObject.class).findAll();
        realmForThisThread.close();
        
        for(int i=0;i<hashtags.size();i++){
            getHashtagTag(hashtags.get(i).getHashtag());
        }
        for(int i=0;i< searchtags.size();i++){ 
            getSearchTags(searchtags.get(i).getId());
        }
       etc     
    }
 
    private void getHashtagTag(final String tagName){
 
                HttpURLConnection urlConnection = null;
                try {
                    URL url = new URL(“URL_1”);
                    urlConnection = (HttpURLConnection) url
                            .openConnection();
                    urlConnection.setRequestMethod("GET");
                    urlConnection.setDoInput(true);
                    urlConnection.connect();
                    String response = Tools.streamToString(urlConnection
                            .getInputStream());
                    JSONObject jsonObj = (JSONObject) new JSONTokener(response)
                            .nextValue();
                    Log.d(tagName,response);
                    for(int i=0;i<jsonObj.getJSONArray("data").length();i++) {
                        JSONObject json = (JSONObject) jsonObj.getJSONArray("data").get(i);
                        Log.d(tagName, json.getJSONObject("user").getString("id"));
                    }
                }catch(Exception exc){
                    exc.printStackTrace();
                }finally {
                    if(urlConnection!=null){
                        try{
                            urlConnection.disconnect();
                        }catch(Exception e){
                            e.printStackTrace();
                        }
                    }
                }
    }
 
    private void getSearchTags (final String tagName){
 
    }
 
    etc
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
31.10.2016, 15:20
Ответы с готовыми решениями:

Нужно доделать базу. Групповые запросы и запросы на изменение данных
Есть база, нужно доделать кое что Групповые запросы: 1) С использование функции count 2) С...

Через групповые политики не подключаются сетевые диски
Доброго времени суток! Может кто то сталкивался с подобным, через групповые политики не...

RecyclerView и сетевые запросы
Есть RecyclerView внутри карточки и для каждой карточки при отрисовке вызывается метод API для...

Работа с внешней БД и сетевые запросы
Здравствуйте, пишу приложение, которое должно работать с БД, которая лежит на сервере. Из этой БД я...

2
Модератор
3331 / 2115 / 343
Регистрация: 13.01.2012
Сообщений: 8,230
03.11.2016, 08:52 2
Delphian, некая сущность желает в произвольный момент времени чтото запросить - пусть она поднимет сервис передав ему нужные для запроса данные, а сервис именно под этот запрос создаст отдельный поток со своими сокетами
1
0 / 0 / 0
Регистрация: 14.08.2012
Сообщений: 138
10.11.2016, 14:45  [ТС] 3
vxg, собственно почти так и сделал, как Вы сказали, и как Выше код описан, использовал IntentService и в нём отправлял все нужные запросы, можно ещё ExecutorService добавить при необходимости
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.11.2016, 14:45

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.

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

"В системе вероятно отсутствуют сетевые карты или сетевые драйверы"
При переустановке windows 7 выскакивает ошибка &quot;в системе вероятно отсутствуют сетевые карты или...

"В системе вероятно отсутствуют сетевые карты или сетевые драйверы"
Здравствуйте. При запуске Windows 7 появляется сначала окно с такой надписью: Woild you like to...

Групповые полтики
Мне нужно применить определенные параметры, для виндоус 7, не могу их найти в групповой полтитике,...

Групповые политики
Подскажите, пожалуйста, где в windows server 2000, в групповых политиках отключить брандмауэр?...

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


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.