|
|
|
Распределенная транзакция по плохим каналам связи.
|
|||
|---|---|---|---|
|
#18+
Теорию почитал, чувствую что хочу невозможного, но вдруг кто подскажет гениальное решение. Исходная задача: есть сайт (обычный хостинг) требуется отправить файл (своим софтом) и получить подтверждение отправки. Ответ важен, т.к. возвращается код присвоенный сайтом. Протокол обмена HTTP, данные передаются POST-запросом и анализируется ответ. Сейчас все решено классическим способом в два шага: клиент посылает все исходные данные, cервер проверяет их корректность, в ответ что данные корректны. Клиент посылает команду фиксации изменений в ответ получает код присвоенный сайтом. Все замечательно пока сайт не начинает тупить. Случается достаточно часто, т.к. хостинг виртуальный, и есть еще куча других сайтов, не все из которых корректно написаны. В результате иногда получается такая ситуация: первый шаг произошел, клиент посылает команду фиксации, она застревает где-то в очереди провайдера, клиент отпадывает по таймауту (30-40 сек) и считает что отправки не произошло, а чуть позже сервер получает команду фиксации, фиксирует и шлет ответ в никуда. Дальше есть контроль повторов и разгребаем руками эти ситуации. Отягчающие обстоятельства: "затупление" сервера идет достаточно долго (5-10 минут) чтоб клиент дождался и повторил отправку. Клиент запускается не часто, поэтому подтверждение при следующем запуске тоже не вариант. Главное чтобы по окончании работы клиента он оказался в одинаковом состоянии с сервером (т.е. файл не отправлен). PS варианты со сменой хостинга, переездом на VDS и т.д. знаю, но пока не рассматриваю, т.к. их минусы не перекрывают вышеописанную проблему. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.04.2013, 10:46 |
|
||
|
Распределенная транзакция по плохим каналам связи.
|
|||
|---|---|---|---|
|
#18+
Головолом, Если сайт ваш собственный, то пусть он и запоминает "неподтверждённый" статус файлов, которые он получил но не проквитировал с клиентом. Если сайт чужой, то сделайте прокси-сервис, находящийся в хорошей связности с "родным" сайтом, и пусть он сидит на keep-alive к этому сайту и помнит результаты загрузок, чтобы отдать их клиентам. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.04.2013, 12:55 |
|
||
|
|

start [/forum/topic.php?fid=16&msg=38234899&tid=1341840]: |
0ms |
get settings: |
7ms |
get forum list: |
20ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
93ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
32ms |
get tp. blocked users: |
1ms |
| others: | 205ms |
| total: | 376ms |

| 0 / 0 |
