DequeueList (TStereotypeClassQueue)

De Wiki1000

<source lang='delphi'>class function DequeueList(const iTopic:string):TQueueObjectList;</source>

Cette fonction consomme les objets suivant disponibles de la file d'attente vérifiant le sujet et retourne une liste.

Result Une liste des objets vérifiant le sujet.
iTopic Nom de sujet demandé.

Exemple :

<source lang='delphi'> //Procedure doDeQueueWithGroupBy; var obj:MyQueue; aList:TQueueObjectList; indx:Integer; aTopic,aGroupByTopic:string; begin

 // In this step we dequeue and process the ready objects.
 // The objects are dequeued group by unCode
 // Request objects in initial state in case of the queue contains multiple states
 aTopic := 'wfclassea/0/%';
 // This is just an estimation of the count, could be false if several processes run in parallel
 ProgressMax(MyQueue.CountWhere('queueTopic like %1',true,[aTopic]));
 obj := MyQueue.GetFirst(aTopic);
 Repeat
   if Assigned(obj) then
    begin
      // Progress indicator
      ProgressCount(indx);
      // Get the topic on which to group by
      aGroupByTopic := 'wfclassea/0/'+StringPart(obj.queueTopic,'/',2)+'/%';
      // Get a list of queue object with this topic
      aList := MyQueue.deQueueList(aGroupByTopic);
      // the objects may has been consumed by an other process, so we have to check it again.
      if Assigned(aList) and (aList.Count>0) then
        try
          // process the list of objects
          doProcessList(aList);
          aList.DeleteObjects;
        except
        // On error ReQueue the list
        MyQueue.ReQueueList(aList,'/0/','/99/');
        end;
    end;
   obj := MyQueue.GetNext(aTopic,obj);
 Until not Assigned(obj);
 //
 ProgressFull();

end; </source>

Voir aussi

{{#if:Classe_file_d'attente_(stereotype)|

{{#if:Classe_file_d'attente_(stereotype)|— Classe_file_d'attente_(stereotype) |}} — Développement DSM

|

{{#if:|— [[{{{1}}}]] |}} — Développement DSM

}}