![]() |
Omni BackgroundWorker / Schedule
Moin Alle... :hi:
Gegeben: - 1..n elektronische (Master)Geräte welche via HTTP ausgelesen werden - jedes (Master)Gerät hat 1..256 Geräte. Diese wiederum haben 1..x auslesbare Parameter. Soll: - jeder auslesbare Parameter soll permanent ausgelesen werden. (Nacheinander) - jedes (Master) Gerät parallel Ist(Idee): - jedes Mastergerät hat einen BackgroundWorker. - Da werden die Geräteparameter als Items abgelegt und abgearbeitet. Soweit so gut. Problem: Im Prinzip sollte die Menge an abrufbaren Parametern einen "Durchlauf" darstellen. Sind alle abgearbeitet geht es von vorn los. 1. Background Worker füllen 2. arbeiten lassen 3. Wenn fertig nach 1. Wie kann ich die Menge an offenen Tasks im Schedule feststellen um bei 0 den Worker neu zu befüllen? Ich könnte mir vor dem Füllen das letzte Item merken und im OnRequest auswerten. Gibt es da was besseres? Danke |
AW: Omni BackgroundWorker / Schedule
Haussteuerung?
Ich würde die Worker einfach mitzählen. Oder habe ich da etwas falsch verstanden? Mavarik |
AW: Omni BackgroundWorker / Schedule
Danke erstmal...
Zitat:
Zitat:
1. Gehen wir davon aus, daß 10 Parameter permanent zu lesen sind. (Schleife mit Abbruchbedingung) 2. die 10 "Kommandos" werden in die Queue "geladen" 3. die 10 werden einer nach dem Anderen abgearbeitet 4. erst wenn die Queue leer ist -> Start wieder mit 2. Da die Abfragezeit der einzelnen "Kommandos" incl. Request nicht definiert ist, kann man das befüllen der Queue nicht statisch steuern. (Timer etc.) Als "Startbedingung" (2.) wollte ich eine leere Queue definieren. Leider finde ich im Bachgroundworker keine Property o.ä. um diesen Zustand definieren zu können. Jedes "Kommando" hat sein Event beim Beenden. Dieses ist für alle gleich. Anhand der Parameter im Event könnte ich das "Kommando" identifizieren. Wenn ich mir vorher beim Befüllen das letzte "Kommando" merke könnte ich hier dann auf eine leere Queue schließen. Meine Frage ist, ob es andere Möglichkeiten gibt die ich nicht gesehen habe. PS: workItem.Task.Counter ist nil :( Da dachte ich schon ich hätte was gefunden. |
AW: Omni BackgroundWorker / Schedule
Zitat:
Das Merken des letzten Kommandos halte ich gerade bei einem Workerpool für fehleranfällig, da es möglich währe, dass das Ende des letzten Kommandos das Vorletzte überholt. |
AW: Omni BackgroundWorker / Schedule
Zitat:
|
AW: Omni BackgroundWorker / Schedule
Zitat:
|
AW: Omni BackgroundWorker / Schedule
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:13 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz