Einzelnen Beitrag anzeigen

Benutzerbild von gubbe
gubbe

Registriert seit: 8. Okt 2005
Ort: Schleswig-Holstein
127 Beiträge
 
Delphi 11 Alexandria
 
#11

AW: Hunderte Clients im Sekundentakt über gesperrte Datensätze informieren

  Alt 20. Jun 2024, 09:31
Muss die Anzeige denn tatsächlich so aktuell sein? Unabhängig davon wie oft Du die Anzeige aktualisierst ist sie wie Du auch schreibst nie 100%-ig aktuell. Dann brauchst Du also sowieso eine Routine, die prüft, ob der gewählte Datensatz noch zu bearbeiten ist.

Also:
- Komplette Liste der noch zu bearbeitenden Datensätze wird angezeigt
- Der Anwender wählt einen Datensatz zur Bearbeitung
- Das Programm prüft, ob der inzwischen gesperrt ist oder schon bearbeitet wurde
- Der Datensatz wird gesperrt und nach der Bearbeitung z.B. mit Änderungsdatum gekennzeichnet
- Die Liste wird neu geladen

Optional kann der Anwender die Liste auch manuell neu laden. Am besten sortiert man die Liste zufällig, damit nicht alle Anwender oben anfangen und sich um die ersten Datensätze streiten.

Wenn es unbedingt sein muss, kannst Du natürlich trotzdem regelmässig mit einer separaten Abfrage ermitteln, welche Datensätze gesperrt oder bereits bearbeitet wurden. Wenn es ein Datumsfeld dafür gibt (Letzte Änderung) kannst Du gezielt nur die abfragen, die sich seit dem letzten Abruf geändert haben. Die Haupttabelle wird dann neu gezeichnet und dabei - wenn der Datensatz auch in der Änderungstabelle existiert - eingefärbt. Nach einer Bearbeitung durch den Anwender lädst Du automatisch neu, so dass er jetzt nur noch die Unbearbeiteten sieht.

Eine Abfrage jede Sekunde ist dabei doch wahrscheinlich gar nicht notwendig solange es kein Wettbewerb ist und die Anwender alle gleichzeitig auf die Daten losgelassen werden und sich um "die besten Datensätze" streiten. Ansonsten eben einen Messagebroker einsetzen (als Ersatz für das Chattool, das rapante erwähnte)

Oder wie Du schon schreibst, den Auftrag nicht annehmen, wenn man nicht davon überzeugt ist.
  Mit Zitat antworten Zitat