Соорудил телебота для работы с базой на ms sql server
работает как служба windows
Новые сообщения получаю через IdHTTP (Indy10) запросом getUpdate (т.е. НЕ используется web хуки и собственный вебсервер для получения сообщений) по таймеру раз в 500мс (между окончанием и началом нового цикла получения и обработки входящих сообщений)
Компонента создается для каждого запроса TidHTTP.Create(nil);
И удаляется в конце процедуры.
- Код: Выделить всё
IdHTTP_post:=TidHTTP.Create(nil);
IdHTTP_post.IOHandler:=TIdSSLIOHandlerSocketOpenSSL.Create(nil);
TIdSSLIOHandlerSocketOpenSSL(IdHTTP_post.IOHandler).SSLOptions.SSLVersions := [sslvTLSv1, sslvTLSv1_1, sslvTLSv1_2];
TIdSSLIOHandlerSocketOpenSSL(IdHTTP_post.IOHandler).SSLOptions.Method := sslvTLSv1_2;
IdHTTP_post.Request.ContentType:='application/json';
IdHTTP_post.Request.Accept:='text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8';
IdHTTP_post.Request.UserAgent:='Mozilla/3.0 (compatible; Indy Library)';
IdHTTP_post.Request.ContentLength:=18;
IdHTTP_post.HTTPOptions:=[hoForceEncodeParams,hoWaitForUnexpectedData,hoWantProtocolErrorContent, hoNoProtocolErrorException];
...
IdHTTP_post.Disconnect;
IdHTTP_post.Free;
Иногда неделями работает стабильно.
Иногда в логах нахожу ошибоки Host not found и Connection refused. И при этом код ошибки 522 Connection timed out
- Код: Выделить всё
2024-09-28_09:52:56.909 - Exception "telebot_post" --- EIdSocketError: Socket Error # 10061 / Connection refused.
2024-09-28_09:52:56.925 - ResponceCode=522
2024-09-28_09:53:03.044 - Exception "telebot_post" --- EIdSocketError: Socket Error # 10061 / Connection refused.
2024-09-28_09:53:03.059 - ResponceCode=522
2024-09-28_09:53:09.463 - Exception "telebot_post" --- EIdSocketError: Socket Error # 10061 / Connection refused.
2024-09-28_09:53:09.478 - ResponceCode=522
2024-09-28_09:53:35.584 - Exception "telebot_post" --- EIdSocketError: Socket Error # 10060 / Connection timed out.
2024-09-28_09:53:35.600 - ResponceCode=522
2024-09-28_09:53:51.768 - Exception "telebot_post" --- EIdSocketError: Socket Error # 11001 / Host not found.
2024-09-28_09:53:51.783 - ResponceCode=522
2024-09-28_09:54:07.964 - Exception "telebot_post" --- EIdSocketError: Socket Error # 11001 / Host not found.
2024-09-28_09:54:07.979 - ResponceCode=522
2024-09-28_09:54:24.136 - Exception "telebot_post" --- EIdSocketError: Socket Error # 11001 / Host not found.
2024-09-28_09:54:24.151 - ResponceCode=522
Не совсем понятно, что делать с такими ошибками.
Вроде как это сервер телеги не отвечает, и нужно подождать.
Пока сделал автоматическое увеличение в 10 раз, значение на таймере для запуска очередной итерации получения и обработки входящих сообщений.
Как увеличить в TidHTTP таймаут и какие значения нужно ставить не смог найти.
И нужно ли это делать не понятно.
Может что посоветуете?