Конференция "Сети" » как корректно завершать работу с поднятым IdHTTPServer ?
 
  • laao (08.05.08 15:47) [0]
    есть сервис на Delphi, внутри сервиса создается Indy HTTPServer, который будет получать большое число запросов GET. то есть в момент завершения сервиса (событие onStop или onShutdown) будет существовать некоторое количество потоков, обрабатывающих запросы. как дождаться в методе их завершения ? или это не нужно руками делать ?
  • palva © (08.05.08 15:57) [1]
    По-моему, это не тот случай, где нужно чего-то ждать. Нужно срочно все закрывать, завершать все потоки и закрываться. Если будет промедление, у оператора могут быть проблемы с последующим стартом этого сервиса.
  • laao (08.05.08 16:00) [2]
    нет, тут важно обработать корректно все те запросы, которые были приняты

    да там то и у HTTPServer параметр TerminateWaitTime стоит в 20000, то есть 20с на запрос максимум ... но не ждать же их каждый раз в onStop sleep'ом. а как посмотреть для компонента IdHTTPServer количество потоков обработки я не знаю
  • Anatoly Podgoretsky © (08.05.08 16:50) [3]
    > palva  (08.05.2008 15:57:01)  [1]

    У оператора могут проблемы не только со стартом этого сервиса, но и со стартом Виндоус.
  • Reindeer Moss Eater © (08.05.08 16:51) [4]
    При стопе взводишь флаг, по которому перестаешь принимать входящие, дожидаешься окончания всех ниток, умираешь.
  • Reindeer Moss Eater © (08.05.08 16:59) [5]
    try
     with IdHTTPServer1.Threads.LockList do ShowMessageИлиКакТоПоДругому('всего сессий:' + IntToStr(Count));
    finally
     IdHTTPServer1.Threads.UnlockList;
    end;
  • laao (08.05.08 17:04) [6]
    Reindeer Moss Eater

    спасибо

    Anatoly Podgoretsky

    объясните, плз, почему
  • laao (08.05.08 17:41) [7]
    ... для обращения к IdHTTPServer.Threads нужно было руками добавить в uses IdTCPServer
  • Anatoly Podgoretsky © (09.05.08 09:54) [8]
    > laao  (08.05.2008 17:04:06)  [6]

    Разрушишь базы или систему. Нельзя блокировать завершение Виндоус.
 
Конференция "Сети" » как корректно завершать работу с поднятым IdHTTPServer ?
Есть новые Нет новых   [134431   +16][b:0][p:0]