В CGI, сделанном с TWebModule
i want, по запросу, выполните фоновый длительный режим, но с процедурой TMyWebModule . MyAction ( Sender : TObject ; Request : TWebRequest ; Response : TWebResponse ; var Handled : Boolean ); var aMyThread : TMyThread ; begin Handled : = true ; aMyThread : = TMyThread . Создать ; Ответ . Содержимое : = 'запрос обрабатывается ...' ; конец ; мгновенный ответ:
TMyThread
type TMyThread = class(TThread) protected procedure Execute; override; public constructor Create; end; implementation constructor TMyThread.Create; begin inherited Create(false); Self.FreeOnTerminate := true; end; procedure TMyThread.Execute; begin WriteLog('START'); try Sleep(20000); finally WriteLog('END'); end; end;
является
START
CGI, кажется, убивает поток ответа сервера, потому что я нашел, END
но не понял END
. IIS по ответу закрывает соединение и отправляет SIGTERM в процесс CGI, который убивает потоки.
Как я могу обрабатывать поток в CGI?
multithreading,delphi,iis,cgi,
В CGI, сделанном с TWebModule
i want, по запросу, выполните фоновый длительный режим, но с процедурой TMyWebModule . MyAction ( Sender : TObject ; Request : TWebRequest ; Response : TWebResponse ; var Handled : Boolean ); var aMyThread : TMyThread ; begin Handled : = true ; aMyThread : = TMyThread . Создать ; Ответ . Содержимое : = 'запрос обрабатывается ...' ; конец ; мгновенный ответ:
TMyThread
type TMyThread = class(TThread) protected procedure Execute; override; public constructor Create; end; implementation constructor TMyThread.Create; begin inherited Create(false); Self.FreeOnTerminate := true; end; procedure TMyThread.Execute; begin WriteLog('START'); try Sleep(20000); finally WriteLog('END'); end; end;
является
START
CGI, кажется, убивает поток ответа сервера, потому что я нашел, END
но не понял END
. IIS по ответу закрывает соединение и отправляет SIGTERM в процесс CGI, который убивает потоки.
Как я могу обрабатывать поток в CGI?
02многопоточность, Дельфы, ИСИ, CGI,