Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / взаимодействие между приложениями / 14 сообщений из 14, страница 1 из 1
04.12.2020, 13:45
    #40024587
AlexeyM123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
взаимодействие между приложениями
Добрый день

Есть задача по обработке XML счетов
Сделал так

На основе замечательной библиотеке internettools по обработке XQuery сделал REST сервер на FreePascal
Файлы XML хранятся на сервере и там же приложение REST сервера

Второе приложение на Delphi дает команду REST серверу загрузить файл и распарсить данные, ответ загоняет в базу FireBird
Пока в режиме тестирования второе приложение стоит на удаленной машине

По результатам эмпирического наблюдения поставил задержку между вызовами REST сервера в 5 сек

Прошу рекомендаций, как можно ускорить взаимодействие между приложениями:
MailSlot, NamedPipes, WM_COPYDATA ?
...
Рейтинг: 0 / 0
04.12.2020, 13:57
    #40024593
rgreat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
взаимодействие между приложениями
AlexeyM123,

Ты для начала найди место где у тебя эта задержка в 5 секунд происходит.
...
Рейтинг: 0 / 0
04.12.2020, 14:02
    #40024600
AlexeyM123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
взаимодействие между приложениями
rgreat
REST сервер загружает xml файл и парсит его
если его дергать в цикле без задержек , REST сервер падает
поэтому я сам поставил 5 секунд
...
Рейтинг: 0 / 0
04.12.2020, 14:05
    #40024603
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
взаимодействие между приложениями
AlexeyM123Прошу рекомендаций, как можно ускорить взаимодействие между приложениями:
MailSlot, NamedPipes, WM_COPYDATA ?

Никак. REST это исключительно TCP/IP.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
04.12.2020, 14:06
    #40024605
Мимопроходящий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
взаимодействие между приложениями
а нахрена тут APP-сервер?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
04.12.2020, 14:14
    #40024610
AlexeyM123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
взаимодействие между приложениями
Мимопроходящий

а нахрена тут APP-сервер?

библиотеку internettools нельзя портировать в Delphi
https://habr.com/ru/post/415617/
а очень хочется использовать возможности XQuery
...
Рейтинг: 0 / 0
04.12.2020, 14:16
    #40024612
AlexeyM123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
взаимодействие между приложениями
Dimitry Sibiryakov

AlexeyM123Прошу рекомендаций, как можно ускорить взаимодействие между приложениями:
MailSlot, NamedPipes, WM_COPYDATA ?

Никак. REST это исключительно TCP/IP.

это понятно
я к тому что может быть взаимодействие сделать другим способом
не через TCP, а через MailSlot ?
...
Рейтинг: 0 / 0
04.12.2020, 14:20
    #40024616
s62
s62
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
взаимодействие между приложениями
AlexeyM123
rgreat
REST сервер загружает xml файл и парсит его
если его дергать в цикле без задержек , REST сервер падает
поэтому я сам поставил 5 секунд
А зачем его дергать в цикле без задержек? Или это тест на случай интенсивного многопользовательского использования?
...
Рейтинг: 0 / 0
04.12.2020, 14:22
    #40024617
sql2012
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
взаимодействие между приложениями
AlexeyM123
rgreat
REST сервер загружает xml файл и парсит его
если его дергать в цикле без задержек , REST сервер падает
поэтому я сам поставил 5 секунд


так и говорит "я упал"?
или ошибка в 17 строке?
...
Рейтинг: 0 / 0
04.12.2020, 14:24
    #40024619
AlexeyM123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
взаимодействие между приложениями
[quot sql2012#22242535]
AlexeyM123
rgreat

так и говорит "я упал"?
или ошибка в 17 строке?


точный текст приведу позже
но смысл, что ответ от сервера не получен
...
Рейтинг: 0 / 0
04.12.2020, 14:25
    #40024620
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
взаимодействие между приложениями
AlexeyM123я к тому что может быть взаимодействие сделать другим способом
не через TCP, а через MailSlot ?

Тогда это уже будет не REST.

AlexeyM123если его дергать в цикле без задержек , REST сервер падает

Он падает потому что ты написал его с ошибкой, не учёл одновременный вызов из двух
подключений. Исправляй.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
04.12.2020, 14:26
    #40024621
X-Cite
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
взаимодействие между приложениями
AlexeyM123
rgreat
REST сервер загружает xml файл и парсит его
если его дергать в цикле без задержек , REST сервер падает
поэтому я сам поставил 5 секунд


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

Другое дело, это сколько реквестов в секунду он может выполнять?

А вообще такие вещи делают через очередь.

Рест-сервис принимает создание ресурса "задача" и возвращает 201 где в location указан ресурс получения результата задачи.
А внутри сервиса делаете обработчик задач, и там уже играетесь в параллелизм..
...
Рейтинг: 0 / 0
04.12.2020, 14:31
    #40024629
Мимопроходящий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
взаимодействие между приложениями
а эта самая супер-пупер билибитека, оно вообще потокобезопасное и реентерабельное?
или хрен его знает?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
04.12.2020, 14:44
    #40024636
AlexeyM123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
взаимодействие между приложениями
да, наверное я накосячил

http://www.benibela.de/documentation/internettools/xquery.html

function defaultQueryEngine: TXQueryEngine;

This is a thread local global query engine. You must call freeThreadVars, after having using it from different threads. When loading additional XML/HTML documents (e.g. with doc or retrieve) they are also only freed by freeThreadVars.
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / взаимодействие между приложениями / 14 сообщений из 14, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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