Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Eine Art Taskplaner in eigener Anwendung (https://www.delphipraxis.net/9706-eine-art-taskplaner-eigener-anwendung.html)

ManiacViper 2. Okt 2003 11:02


Eine Art Taskplaner in eigener Anwendung
 
Hallo,

ich hab im Moment folgendes Problem und bin noch etwas ratlos wie ich es lösen soll. Ich möchte in regelmäßigen Abständen (zb. aller 5 Minuten) Daten von verschiedenen Servern abrufen und diese in eine Datenbank schreiben. Der Abstand zwischen zwei Abrufen soll dabei für jeden Server extra eingestellt werden können. Ich weiß aber nicht so richtig wie ich diese Funktion realisieren kann. Ich könnte natürlich für jeden Server einen Thread starten der immer den gewünschten Abstand wartet und dann die Daten abruft, aber bei einer großen Anzahl Server bekomme ich sicher Probleme in Bezug auf die Systemressourcen. Vielleicht hat jemand einen Vorschlag oder Lösungsansatz.

Danke,
Daniel

Christian Seehase 2. Okt 2003 11:11

Re: Eine Art Taskplaner in eigener Anwendung
 
Moin Daniel,

erst einmal herzlich willkommen hier in der Delphi-PRAXiS.

Was verstehst Du unter einer grossen Anzahl von Servern?
Welchen Umfang haben die Daten, die abgerufen werden sollen?

nailor 2. Okt 2003 11:15

Re: Eine Art Taskplaner in eigener Anwendung
 
Wie wärs mit einen Timer, der ständig läuft (kurzes Zeitintervall), in dem die Zeiten für jeden Server gespeichert sind, der falls eine Zeit erreicht wurde, startet er einen neuen Thread, über den der Datenaustausch läuft?

Motzi 2. Okt 2003 11:32

Re: Eine Art Taskplaner in eigener Anwendung
 
Also auf dem System vor dem ich gerade sitze laufen momentan 301 Threads...

Das Problem ist also nicht die Anzahl der Threads, sondern wieviele davon aktiv arbeiten und wieviele im "Wartezustand" sind! Du kannst also durchaus auch eine größere Anzahl an Threads ereugen, wenn diese immer nur in längeren Abständen zuteilungsfähig werden...

ManiacViper 7. Okt 2003 10:19

Re: Eine Art Taskplaner in eigener Anwendung
 
Moin,

sorry für meine späte Antwort. Vielleicht sollte ich mal näher erklären was ich realisieren möchte. Mir geht es darum die Event Logs der einzelnen Rechner zentral in einer Datenbank abzulegen, um diese dann auswerten zu können. Um das zu realisieren sind mir 2 Methoden eingefallen :

- auf jedem Rechner läuft ein kleines Programm, welches im Falle eines neuen Eintrages im lokalen Event Log den Eintrag in der zentralen DB vornimmt
- auf einem Rechner läuft ein Programm welches die Event Logs der anderen Rechner abruft und die Einträge in die DB schreibt

Eigentlich wollte ich die zweite Methode umsetzen, da ich so alles schön zentral verwalten kann.
Die Anzahl der zu überwachenden Rechner ist halt sehr variabel, aber ich denke mit mehr als 300 Rechnern ist nicht zu rechnen.

Also könnte ich theoretisch den Ansatz verfolgen : 1 Rechner = 1 Thread, oder ?

Tschüss Daniel

Christian Seehase 7. Okt 2003 13:26

Re: Eine Art Taskplaner in eigener Anwendung
 
Moin Daniel,

wär's da nicht einfacher, wenn die Programme, die auf den Remote Rechnern laufen sich bei Deinem zentralen Programm melden, sobald sich was getan hat?
Schau Dir dazu ggf. mal die API-Funktion NotifyChangeEventLog an.

ManiacViper 7. Okt 2003 14:41

Re: Eine Art Taskplaner in eigener Anwendung
 
Hallo,

die API-Funktion hatte ich auch schon im Auge, zumal EventMonTray von Assarbad das ganze recht gut erklärt. Das einzige was etwas stört ist das : Microsoft Knowledge Base Article - 245609. Allerdings ist nur NT betroffen, also werde ich mich mal näher damit beschäftigen.

Danke für die Hinweise,
Daniel

Christian Seehase 7. Okt 2003 14:55

Re: Eine Art Taskplaner in eigener Anwendung
 
Moin Daniel,

unter NT könntest Du das mit einem Workaround erledigen:
Da ja nur nicht garantiert wird, dass jedes Event sofort gemeldet wird, könntest Du bei einer Meldung prüfen, welche noch nicht übertragen wurden, und die dann nehmen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:49 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz