fconnection = new TFDConnection(NULL);
fquery = new TFDQuery(NULL);
fquery->Connection = fconnection;
fquery->AfterOpen = AfterOpen;
fquery->AfterExecute = AfterExecute;
fquery->OnError = QueryError;
Всего около 500 запросов в секунду, т.е. по 50 на каждый, после каждого запроса по AfterOpen и AfterExecute сразу следующий запрос из очереди. В случае QueryError - разрыв соединения и через паузу повтор. При тестировании была выявлена деградация количества записей в секунду, вплоть до полной остановки. Локализация показала, что при высокой нагрузке TFDQuery иногда не возвращает callback менее чем совсем, ни AfterExecute ни QueryError, в общем "друг, оставь покурить, а в ответ - тишина". При этом у TFDConnection State = csConnected и у TFDQuery State = dsInactive.
Проблема была решена костылем с таймаутом, если за секунду нет ответа - уход в ошибку с разрывом соединения и повтором.
Теперь вопрос, может я чего-то не знаю? где callback?
Вопрос
Камышев Александр
Windows, TFDConnection + TFDQuery, асинхронный режим запросов, 10 TFDQuery создаются динамически
fconnection = new TFDConnection(NULL); fquery = new TFDQuery(NULL); fquery->Connection = fconnection; fquery->AfterOpen = AfterOpen; fquery->AfterExecute = AfterExecute; fquery->OnError = QueryError;
Всего около 500 запросов в секунду, т.е. по 50 на каждый, после каждого запроса по AfterOpen и AfterExecute сразу следующий запрос из очереди. В случае QueryError - разрыв соединения и через паузу повтор. При тестировании была выявлена деградация количества записей в секунду, вплоть до полной остановки. Локализация показала, что при высокой нагрузке TFDQuery иногда не возвращает callback менее чем совсем, ни AfterExecute ни QueryError, в общем "друг, оставь покурить, а в ответ - тишина". При этом у TFDConnection State = csConnected и у TFDQuery State = dsInactive.
Проблема была решена костылем с таймаутом, если за секунду нет ответа - уход в ошибку с разрывом соединения и повтором.
Теперь вопрос, может я чего-то не знаю? где callback?
Ссылка на комментарий
8 ответов на этот вопрос
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.