Я хочу отслеживать длительные операции на idHTTPServer из idHTTPClient с помощью ping.Как бы я сделал это лучше?Мне нужно что-то уникальное для этого.Я пытался с bind.id, но безуспешно.
Допустим, я даю что-то уникальное, когда поток запускается, его работа
procedure TRPTests.SomeServerJob;
var
jo: ISuperObject;
begin
TThread.CreateAnonymousThread(
procedure()
begin
Sleep(3000);
end).Start();
jo := SO();
jo.S['BindId'] := Context.Binding.ID.ToString;
FResponses.OkWithJson(jo.AsJSon(false, false));
end;
Через некоторое время я хочу проверить, выполнена ли работаили что такое прогресс?Допустим, я пытался сделать это таким образом
procedure TRPSystem.PingContext(aId: string);
var
jo: ISuperObject;
i: integer;
r: boolean;
someProgress: string;
begin
with GetMain.Server.Contexts.LockList() do
try
for i := 0 to Count - 1 do
if TIdContext(Items[i]).Binding.ID = aId.ToInteger then
begin
someProgress := '10 %'; // take progress param from my thread
r := true;
Break;
end;
finally
GetMain.Server.Contexts.UnlockList();
end;
if r then
begin
jo := SO;
jo.I['progress'] := someProgress;
FResponses.OkWithJson(jo.AsJSon(false, false));
end;
end;
Это правильный подход или лучше использовать другой?