|
|
|
Синхронизация с веб-сервисом
|
|||
|---|---|---|---|
|
#18+
Имеется десктопное приложение на Delphi и веб-сервис онлайн-записи клиентов c REST API. Соответственно нужно новые записи клиентов с веб-сервиса садить в десктопное приложение. В десктопное приложение запись клиентов также может добавляться по звонку клиента. Поэтому хотел посоветоваться: 1) Как часто опрашивать сервис? Напрашивается минута, но и за минуту уже может пойти нестыковка. 30 секунд? 2) Стоит ли выделить опрос веб-сервиса в отдельное приложение или отдельного потока хватит? 3) Если работать через поток, то 30 секунд не слишком ли часто. Заранее спасибо, и прошу без пинков, если можно =) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2018, 06:45 |
|
||
|
Синхронизация с веб-сервисом
|
|||
|---|---|---|---|
|
#18+
aidynchik, 1. id клиента - его телефонный номер? Или что? 2. Расскажи, какие действия ты подразумеваешь под словом "синхронизация", подробно. 3. Что ты понимаешь под словом "нестыковка" (подробно) и что ты собираешься делать в этом случае? 4. Что случится, если "синхронизация" (еще раз: что это, подробно?) будет выполняться "слишком часто"? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2018, 07:57 |
|
||
|
Синхронизация с веб-сервисом
|
|||
|---|---|---|---|
|
#18+
вижу в хрустальном шаре традиционную хотелку данные синхронно обновляются на всем земном шаре что изменится, если вы получите данные на 30 секунд позже? если ваш сервер может ответить на 10 запросов в секунду, то при запросе данных раз в 30 секунд примерно 300 пользователей положат систему. просто исходите из этой простой мысли ничего отдельного писать не нужно, просто в потоке раз в N сек. стучитесь и получайте статус, нужно ли что-то скачивать с сервера, опираясь на время вашего последнего скачивания если есть, то отдельным запросом скачивайте обновления и ставьте себе ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2018, 08:49 |
|
||
|
Синхронизация с веб-сервисом
|
|||
|---|---|---|---|
|
#18+
С точки зрения моего здравого смысла, проверять надо в двух моментах: 1) перед открытием формочки для ввода данных 2) перед отправкой/или сервер вернет ошибку что время занято. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2018, 10:43 |
|
||
|
Синхронизация с веб-сервисом
|
|||
|---|---|---|---|
|
#18+
Котовасияaidynchik, 1. id клиента - его телефонный номер? Или что? 2. Расскажи, какие действия ты подразумеваешь под словом "синхронизация", подробно. 3. Что ты понимаешь под словом "нестыковка" (подробно) и что ты собираешься делать в этом случае? 4. Что случится, если "синхронизация" (еще раз: что это, подробно?) будет выполняться "слишком часто"? 1. Да, ID клиента - его телефонный номер 2. Под синхронизацией - запись клиентов с веб-сервиса ложить в десктоп 3. Нестыковка - за время, что прошло с последнего опроса, появились записи в десктопе, и теоретически время может совпасть 4. Вот и я спрашивал, не будет ли приложение напрягаться :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2018, 05:47 |
|
||
|
Синхронизация с веб-сервисом
|
|||
|---|---|---|---|
|
#18+
Cobalt747С точки зрения моего здравого смысла, проверять надо в двух моментах: 1) перед открытием формочки для ввода данных Очень здравая мысль :) похоже, что так и сделаю, единственно опять же 2 момента 1) Если в этом же потоке делать, то будет небольшое подвисание формы, пока запрос отработает 2) Если делать в отдельном потоке, есть риск, что пользователь вобьет данные и закроет форму раньше, чем пришли данные с веба ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2018, 05:49 |
|
||
|
Синхронизация с веб-сервисом
|
|||
|---|---|---|---|
|
#18+
aidynchik, кто конечный хранитель данных? База? Если база, то может там организовать синхронизацию консолидацию данных? Не должно быть разницы, откуда прилетели данные. Если данных с таким ид нет - вставляем, есть - обновляем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2018, 08:06 |
|
||
|
Синхронизация с веб-сервисом
|
|||
|---|---|---|---|
|
#18+
aidynchikКак часто опрашивать сервис? Напрашивается минута, но и за минуту уже может пойти нестыковка. 30 секунд? long polling Коли у тебя рест, читай https://ru.wikipedia.org/wiki/Comet_(программирование) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2018, 09:07 |
|
||
|
Синхронизация с веб-сервисом
|
|||
|---|---|---|---|
|
#18+
goldmi45 Если данных с таким ид нет - вставляем, есть - обновляем. РУГАЕМСЯ на конфликт ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2018, 11:06 |
|
||
|
Синхронизация с веб-сервисом
|
|||
|---|---|---|---|
|
#18+
ИМХО: 1. Запрашиваем список доступных интервалов для записи и показываем его пользователю; 2. Когда пользователь выбирает время для записи, то сначала проверяем свободна ли оно до сих пор и по результату - либо сразу создаём запись на это время без данных пользователя, с пометкой "зарезервировано", либо сообщаем пользователю: "извините, птичка улетела, выберите другое время"; 3. Если пользователь передумал записываться и закрыл формочку - удаляем временную запись; 4. Ну и если пользователь слишком долго тупит глядя в полученный в п.1 список, то обновляем этот список с некоторым интервалом, интервал обновления выбираем в зависимости от скорости получения данных и количества пользователей системы. Например, если список загружается в пределах секунды, а количество пользователей невелико, то за этот интервал можно взять среднее время оформления одной заявки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2018, 11:32 |
|
||
|
Синхронизация с веб-сервисом
|
|||
|---|---|---|---|
|
#18+
aidynchik1) Как часто опрашивать сервис? Напрашивается минута, но и за минуту уже может пойти нестыковка. 30 секунд? 2) Стоит ли выделить опрос веб-сервиса в отдельное приложение или отдельного потока хватит? 3) Если работать через поток, то 30 секунд не слишком ли часто. По идее тут имел бы смысл двухсторонний интерфейс. Клиент подписывается на информацию об обновлениях определённого контента и сервис рассылает "пуши" об изменениях данных. Тогда клиенту не надо ничего дёргать самому, а просто ждать когда ему сообщат об изменениях. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2018, 12:01 |
|
||
|
Синхронизация с веб-сервисом
|
|||
|---|---|---|---|
|
#18+
Dimonka, а что есть возможность кинуть уведомление десктопному приложению? по-моему нет такого ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2018, 15:30 |
|
||
|
Синхронизация с веб-сервисом
|
|||
|---|---|---|---|
|
#18+
aidynchik, гугла говорит обратное https://www.google.com/search?newwindow=1&client=firefox-b&ei=nNGsW5T9MIGPsgH5_43gBA&q=push уведомления в windows 10&oq=push уведомления в windows 10&gs_l=psy-ab.12...0.0.0.256013.0.0.0.0.0.0.0.0..0.0....0...1..64.psy-ab..0.0.0....0.wBefU9Jh1GI MS с ним согласна https://msdn.microsoft.com/ru-ru/library/windows/apps/mt187196.aspx ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2018, 15:58 |
|
||
|
|

start [/forum/topic.php?fid=58&gotonew=1&tid=2040351]: |
0ms |
get settings: |
7ms |
get forum list: |
17ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
168ms |
get topic data: |
10ms |
get first new msg: |
5ms |
get forum data: |
2ms |
get page messages: |
53ms |
get tp. blocked users: |
1ms |
| others: | 251ms |
| total: | 520ms |

| 0 / 0 |
