TDataView.DeadManSwitchActive
| TDataView = class (TObject) | Interface de TDataView | Exemples de TDataView |
Qubes 7.2 teste si on est toujours dans le délai
Syntaxe
function DeadManSwitchActive(): Boolean
Remarques
Le DeadManSwitch sert à vérifier que le traitement s'écoule pendant un temps raisonnable et qu'il n'a pas planté.
Renvoi true tant que le délai ne s'est pas intégralement écoulé.
Par défaut le délai est de 60 secondes.
Exemples
var dvName := 'DataViewName';
var dataView := DeclareView(dvName, dataSource, dvFields);
if IncrementGlobalVar(dvName) <> 1 then begin
if dataView.DeadManSwitchActive then begin
IncrementGlobalVar(dvName, -1);
SendError(503,'Update already in progress. Please wait');
Exit;
end;
end;
dataView.DeadManSwitchRearm;
try
var CP := dataView.MetaData['CheckPoint'];
if CP = '' then
CP := dataSource.Restart(dataView)
else CP := dataSource.Update(dataView,CP);
dataView.MetaData['CheckPoint'] := CP;
finally
IncrementGlobalVar(dvName, -1);
dataView.DeadManSwitchClear;
end;
var dataView := DeclareView(dvName, dataSource, dvFields);
if IncrementGlobalVar(dvName) <> 1 then begin
if dataView.DeadManSwitchActive then begin
IncrementGlobalVar(dvName, -1);
SendError(503,'Update already in progress. Please wait');
Exit;
end;
end;
dataView.DeadManSwitchRearm;
try
var CP := dataView.MetaData['CheckPoint'];
if CP = '' then
CP := dataSource.Restart(dataView)
else CP := dataSource.Update(dataView,CP);
dataView.MetaData['CheckPoint'] := CP;
finally
IncrementGlobalVar(dvName, -1);
dataView.DeadManSwitchClear;
end;