Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Синхронизация с веб-сервисом / 14 сообщений из 14, страница 1 из 1
26.09.2018, 06:45
    #39708121
aidynchik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Синхронизация с веб-сервисом
Имеется десктопное приложение на Delphi и веб-сервис онлайн-записи клиентов c REST API. Соответственно нужно новые записи клиентов с веб-сервиса садить в десктопное приложение. В десктопное приложение запись клиентов также может добавляться по звонку клиента.
Поэтому хотел посоветоваться:
1) Как часто опрашивать сервис? Напрашивается минута, но и за минуту уже может пойти нестыковка. 30 секунд?
2) Стоит ли выделить опрос веб-сервиса в отдельное приложение или отдельного потока хватит?
3) Если работать через поток, то 30 секунд не слишком ли часто.

Заранее спасибо, и прошу без пинков, если можно =)
...
Рейтинг: 0 / 0
26.09.2018, 07:57
    #39708140
Котовасия
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Синхронизация с веб-сервисом
aidynchik,

1. id клиента - его телефонный номер? Или что?
2. Расскажи, какие действия ты подразумеваешь под словом "синхронизация", подробно.
3. Что ты понимаешь под словом "нестыковка" (подробно) и что ты собираешься делать в этом случае?
4. Что случится, если "синхронизация" (еще раз: что это, подробно?) будет выполняться "слишком часто"?
...
Рейтинг: 0 / 0
26.09.2018, 08:49
    #39708153
krapotkin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Синхронизация с веб-сервисом
вижу в хрустальном шаре традиционную хотелку
данные синхронно обновляются на всем земном шаре
что изменится, если вы получите данные на 30 секунд позже?
если ваш сервер может ответить на 10 запросов в секунду, то при запросе данных раз в 30 секунд
примерно 300 пользователей положат систему.

просто исходите из этой простой мысли
ничего отдельного писать не нужно, просто в потоке раз в N сек. стучитесь и получайте статус, нужно ли что-то скачивать с сервера, опираясь на время вашего последнего скачивания
если есть, то отдельным запросом скачивайте обновления и ставьте себе
...
Рейтинг: 0 / 0
26.09.2018, 10:43
    #39708247
Cobalt747
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Синхронизация с веб-сервисом
С точки зрения моего здравого смысла, проверять надо в двух моментах:
1) перед открытием формочки для ввода данных
2) перед отправкой/или сервер вернет ошибку что время занято.
...
Рейтинг: 0 / 0
27.09.2018, 05:47
    #39708969
aidynchik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Синхронизация с веб-сервисом
Котовасияaidynchik,

1. id клиента - его телефонный номер? Или что?
2. Расскажи, какие действия ты подразумеваешь под словом "синхронизация", подробно.
3. Что ты понимаешь под словом "нестыковка" (подробно) и что ты собираешься делать в этом случае?
4. Что случится, если "синхронизация" (еще раз: что это, подробно?) будет выполняться "слишком часто"?

1. Да, ID клиента - его телефонный номер
2. Под синхронизацией - запись клиентов с веб-сервиса ложить в десктоп
3. Нестыковка - за время, что прошло с последнего опроса, появились записи в десктопе, и теоретически время может совпасть
4. Вот и я спрашивал, не будет ли приложение напрягаться :)
...
Рейтинг: 0 / 0
27.09.2018, 05:49
    #39708970
aidynchik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Синхронизация с веб-сервисом
Cobalt747С точки зрения моего здравого смысла, проверять надо в двух моментах:
1) перед открытием формочки для ввода данных

Очень здравая мысль :) похоже, что так и сделаю, единственно опять же 2 момента
1) Если в этом же потоке делать, то будет небольшое подвисание формы, пока запрос отработает
2) Если делать в отдельном потоке, есть риск, что пользователь вобьет данные и закроет форму раньше, чем пришли данные с веба
...
Рейтинг: 0 / 0
27.09.2018, 08:06
    #39708991
goldmi45
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Синхронизация с веб-сервисом
aidynchik,

кто конечный хранитель данных? База? Если база, то может там организовать синхронизацию консолидацию данных?
Не должно быть разницы, откуда прилетели данные. Если данных с таким ид нет - вставляем, есть - обновляем.
...
Рейтинг: 0 / 0
27.09.2018, 09:07
    #39709011
Kazantsev Alexey
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Синхронизация с веб-сервисом
aidynchikКак часто опрашивать сервис? Напрашивается минута, но и за минуту уже может пойти нестыковка. 30 секунд?

long polling

Коли у тебя рест, читай https://ru.wikipedia.org/wiki/Comet_(программирование)
...
Рейтинг: 0 / 0
27.09.2018, 11:06
    #39709132
Cobalt747
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Синхронизация с веб-сервисом
goldmi45 Если данных с таким ид нет - вставляем, есть - обновляем. РУГАЕМСЯ на конфликт
...
Рейтинг: 0 / 0
27.09.2018, 11:32
    #39709160
alekcvp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Синхронизация с веб-сервисом
ИМХО:

1. Запрашиваем список доступных интервалов для записи и показываем его пользователю;
2. Когда пользователь выбирает время для записи, то сначала проверяем свободна ли оно до сих пор и по результату - либо сразу создаём запись на это время без данных пользователя, с пометкой "зарезервировано", либо сообщаем пользователю: "извините, птичка улетела, выберите другое время";
3. Если пользователь передумал записываться и закрыл формочку - удаляем временную запись;
4. Ну и если пользователь слишком долго тупит глядя в полученный в п.1 список, то обновляем этот список с некоторым интервалом, интервал обновления выбираем в зависимости от скорости получения данных и количества пользователей системы. Например, если список загружается в пределах секунды, а количество пользователей невелико, то за этот интервал можно взять среднее время оформления одной заявки.
...
Рейтинг: 0 / 0
27.09.2018, 12:01
    #39709183
Dimonka
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Синхронизация с веб-сервисом
aidynchik1) Как часто опрашивать сервис? Напрашивается минута, но и за минуту уже может пойти нестыковка. 30 секунд?
2) Стоит ли выделить опрос веб-сервиса в отдельное приложение или отдельного потока хватит?
3) Если работать через поток, то 30 секунд не слишком ли часто.
По идее тут имел бы смысл двухсторонний интерфейс. Клиент подписывается на информацию об обновлениях определённого контента и сервис рассылает "пуши" об изменениях данных. Тогда клиенту не надо ничего дёргать самому, а просто ждать когда ему сообщат об изменениях.
...
Рейтинг: 0 / 0
27.09.2018, 15:30
    #39709358
aidynchik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Синхронизация с веб-сервисом
Dimonka,

а что есть возможность кинуть уведомление десктопному приложению? по-моему нет такого
...
Рейтинг: 0 / 0
27.09.2018, 15:58
    #39709382
Gator
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Синхронизация с веб-сервисом
...
Рейтинг: 0 / 0
27.09.2018, 16:37
    #39709418
JayDi
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Синхронизация с веб-сервисом
В реальном времени что ли надо обновлять? Тогда читать про "long polling". А вообще 30 секунд нормальный вариант. Обычно никакой срочности не надо в данных.
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Синхронизация с веб-сервисом / 14 сообщений из 14, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]