INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

Zwei Queue-Frage an die Experten



Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!

27.01.2011, 09:24
Beitrag #3

RHeil Offline
LVF-Grünschnabel
*


Beiträge: 26
Registriert seit: Nov 2010

2011 SP1
2001
EN

81737
Deutschland
Zwei Queue-Frage an die Experten
Eine oder mehrere Qs ist Geschmackssache.

Mit mehreren Qs kannst Du die Struktur in etwa so machen wie in Deinem Beispiel gezeigt.
Du könntest aber auch eine einzige Q für alles nehmen, wenn Du als Datentyp z.B. einen Message-Cluster verwendest (also einen Cluster aus einem Command-Enum und einem Daten-Variant) und das dann in der Consumer Loop entsprechend behandelst (Case-Struktur).

Auf alle Fälle würde ich keine Wartezeit in die Consumer Loop stecken (so wie Du es ja schon gemacht hast).

Bei mehreren Qs würde ich aber den einzelnen Q-Abfragen ein Timeout geben und den Timeout-Fall abfangen (d.h. die Daten ignorieren bei Timeout).
Dieser Timeout sollte für alle Qs gleich sein und maximal der kürzesten Dauer zwischen zwei aufeinanderfolgenden Paketen entsprechen.
Damit ist die Q dann indirekt getimed.

So wie Du es jetzt machst, bestimmt die langsamste Q den Takt der Schleife, d.h. in der schnelleren baut sich ein Puffer auf.
(Mach Dir mal klar was hier passiert: Die Schleife wird als ganzes wiederholt, wenn ihr kompletter Inhalt einmal abgearbeitet ist. Solange noch auf eine der Qs gewartet wird, wird auch die andere nicht ausgelesen, selbst wenn dort schon 1000 Werte drin sind.)

Außerdem hoffe ich sehr, dass Dein Screenshot nur Konzept-Code zeigt und dass Du ohnehin vorhattest, noch einen ordentlichen Weg zum Beenden der Schleifen zu implementieren. Sonst wäre alles was in Deinem Bild rechts von den Schleifen liegt sinnlos.

Hier mein üblicher Hinweis zu diesem Thema:
Der Stop-Knopf ("Abort Execution") in der Symbolleiste ist eine Art "Not-Aus" für Debug-Zwecke.
In einer sinnvollen Anwendung hat der nichts verloren.
Entsprechendes gilt für "Run Continously".
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Nachrichten in diesem Thema
Zwei Queue-Frage an die Experten - RHeil - 27.01.2011 09:24

Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  zwei Plots in einem X-Y Graphen mit zwei Achsen bachatero18 7 4.453 20.11.2019 15:06
Letzter Beitrag: Lucki
  Wie auf abgearbeitete Queue warten mez15 11 7.446 28.09.2017 13:02
Letzter Beitrag: TR61
  Datum Uhrzeit Queue DeleteAll 8 5.174 24.03.2017 15:47
Letzter Beitrag: GerdW
  TDMS in Queue laden gifo 8 5.066 07.01.2016 16:41
Letzter Beitrag: GerdW
  Fehlercluster via Queue hansi9990 23 12.916 07.08.2015 14:11
Letzter Beitrag: hansi9990
  Queue und (kein) Dataflow NoWay 9 6.842 01.06.2015 11:56
Letzter Beitrag: Kiesch

Gehe zu: