Thema: Delphi Fakturierungsserver

Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.152 Beiträge
 
Delphi 12 Athens
 
#4

AW: Fakturierungsserver

  Alt 4. Feb 2020, 21:19
Jupp, wie schon erwähnt wurde, ist ja grade ein gutes DBMS dafür da mit vielen Daten ordentlich zu rechnen.

* in der DB alles berechnen (paar SELECTs von einem Programm aus sind da dann aber nicht unbedingt das opzimale)
** alles in StoredProcs/Trigger, wo dann durch irgendwen regelmäßig eine Berechnungsfunktion angestoßen wird

* Report-Daten und zu versendende Mails (ReportID, Text, Mailadressen uns) in Tabellen sammeln und dann von einem Programm abrufen
** ab und an anfragen ob was da ist, oder direkt über Notifications die Abfrage anstoßen


Gut, mit den dir bekannten Mitteln lässt sich in der DB dann die Berechnung nicht Debuggen, aber auch dafür gibt es entsprechende Lösungen.





Aber wenn du erstmal nur aufräumem willst, dann nicht mit Tasks/Threads anfangen. Vergiss nicht, dass du dort dann auf eine Trennung oder Synchronisierung global/gemeinsam verwendetet Objekte/Variablen/... sorgen mußt.
Mach es einfach wie viele andere Programme ala Browser, Datenbankserver uvm.:
> Lege Einzelteile in eigenständige Programminstanzen, gesteuert/gestartet/verwaltet von einem "einfachen" Masterprogramm.
= RAM hat dann jeder seinen Eigenen, globale Objekte gibt es erstmal auch nicht mehr, ein schlimmer Fehler beeinflusst Andere nicht
und von den Tasks/Threads her macht es für das System keinen Unterschied (ist insgesamt ja gleich) und der gesamte RAM ... OK, der wird etwas mehr (jeder bekommt seine eigene Connection usw.), aber RAM kostet nun wirklich nichts.
= außerdem verreckt dann nicht gleich alles, wenn ein Teil abkratzt,
du kannst die Einzelteile auch viel einfacher Debuggen, wenn nicht ständig was anderes reinkretscht,
und wenn du an einem Teil rumschraubst, ist die Wahrscheinlichkeit viel kleiner, dass andere Teile auch kaputt gehn (bei gemeinsamen Sourcen auch dann nicht, wenn nicht jedesmal alle EXEn neu erstellt werden)

Und wenn jede Programminstanz dann nur einen kleinen Teil erledigt, dann lassen sich davon auch Mehrere starten, wenn noch genügend Rechenleistung frei ist.
(je ein Datensatz und sich dann beendet oder den nächsten Satz abholen)
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat