Натисніть на опитування, коли велика затримка (години) прийнятна


10

На сьогоднішній день, як здається, здоровою думкою є те, що опитування є поганою практикою, і цей шлях - це шлях до розробки мобільних додатків, яким потрібно постійно отримувати дані з віддаленого сервера.

Усі великі мобільні магазини надають свою версію послуги "push push":

Однак мені цікаво, наскільки це припущення справедливе. Я маю на увазі, якщо у мене є програма, яка опитує віддалений сервер лише пару разів на день, і якій "сповіщення" не потрібно доставляти миттєво (велика затримка прийнятна), то було б хорошим рішенням опитувати дані, а не натискати на них?

Спасибі заздалегідь!


1
Я недостатньо знайомий з мобільними механізмами натискання, щоб реально зважитися на цьому, але мені цікаво, чи використання механізму натискання може врятувати деякі головні болі, наприклад, щодо роботи зі сценаріями вимкнення / сну. Якби це був лише настільний / веб-додаток, то я б сказав, що опитування добре; натискання зазвичай також передбачає збереження відкритого зв'язку на веб-сервері, тому це ще одна перевага опитування на робочому столі / браузері, але оскільки це мобільний додаток, і ви можете використовувати ці альтернативні механізми натискання, я думаю, що відповідь може бути іншою.
Учень доктора Вілі

Відповіді:


14

Опитування завжди прийнятне, коли в реальному часі це не є необхідністю. Що ви повинні запитати у себе, це чому б ви використовували один замість іншого?

Мета push послуги - кілька речей; Ви можете мати значно менший трафік, з яким Ви матимете справу, якщо Ваші натискання є трансляціями, а третій провайдер здійснює трансляцію - це дозволяє Вам надсилати одне повідомлення та отримувати тисячі. Але, як ви зазначаєте, найбільша користь поштового сервісу - це характер у режимі реального часу, який дозволяє негайним оновленням охопити ваших споживачів. Однак при натисканні ви насправді ніколи не хочете натискати великі набори даних, якщо ви здійснюєте трансляцію, і ви також на владі стороннього сервісу push-послуг, який ви використовуєте (якщо ви користуєтесь ним).

Мета опитування - періодично перевіряти різниці між даними, де період оновлення може мати прийнятну SLA неточність до певного періоду часу. Опитування вимагає від усіх ваших клієнтів періодично запитувати дані, що означатиме запит на з'єднання для кожного працюючого клієнта та необхідність служби "Live", яка зможе точно відстежувати ці дані, щоб їх обслуговувати до опитувачів. Наявність точних даних для обслуговування означає деяку стійкість даних, яка забирає диск та час обслуговування.

Тож із цього ми бачимо, що якщо ви маєте занепокоєння щодо мережевого трафіку чи обслуговування сервісу (що означає можливо автентифікацію / авторизацію запитів, реєстрацію їх, що займає дисковий простір, усі нормальні вимоги щодо підтримки служби), ви не будете ' не хочу примушувати клієнтів до опитування. Однак якщо випадок використання вимагає передачі особливо великого набору даних або ви не можете бути прив’язаними до API сторонніх розробників, які можуть змінюватися в часі, а також їх умовами домовленості або платою, тоді може застосовуватися домашня система опитування, хоча обслуговування накладні витрати можуть бути значно більше. Крім того, ви вже можете працювати з службою, і дані зберігаються таким чином, що опитування є легким доповненням до вже наявної інфраструктури, що робить опитування більш бажаним.

Хоча до центральної точки, яку ви робите, ви правильні; якщо в режимі реального часу необхідно , опитування не буде робити. Якщо це не так, вам просто потрібно зробити математику щодо того, як періодично можна перевіряти дані, помножені на клієнтську базу, помножену на розмір вашого набору даних, щоб вирішити, чи варто коштувати мережа, або якщо послуга натиснення Було б краще, коли ви завжди можете просто натиснути подію зміни, яка дозволить їм запросити великий набір даних на вторинному кроці (хоча атомність цих кроків може бути чимось, вам потрібно бути обережним, залежно від критичності даних).


3

Опитування має бути нормальним у вашому випадку. І вам не доведеться інтегруватися з ще однією системою (або декількома системами для декількох платформ).

Однак, специфіка пристрою може бути проблемою. Чи можете ви надійно опитувати, коли програма не спереду та не в центрі пристрою? (може бути проблемою для вас). Ваша здатність робити це може залежати від технологій, які ви використовуєте для розробки програми.


Я планую використовувати вбудовані таймери, щоб переконатися, що програма опитує сервер, навіть якщо він не "активний". Я знаю, як це зробити на Android, і сподіваюся, що iPhone і WindowsPhones забезпечують однаковий функціонал;)
Thomas CG de Vilhena

2

Звичайно. Це також простіше (просто остерігайтеся витягнутих шипів, якщо всі тягнуть за одним графіком).

З цього приводу я заперечую припущення, що "велика затримка прийнятна", враховуючи очікування користувачів мобільних пристроїв. ("Карти не оновлюються в режимі реального часу! Неприйнятно!" - або - "Я знаю, що це погода, але я продовжу натискати цю кнопку оновлення кожні п'ять секунд, поки прогноз на завтра стане сонячним!")


Хороший момент щодо того, щоб не дозволяти всім одночасно голосувати. Гадаю, встановлення таймерів випадковим чином зробить свою справу!
Thomas CG de Vilhena
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.