Schrift
[thread]12521[/thread]

Client/Server mit langlaufender Subroutine

Leser: 1


<< >> 2 Einträge, 1 Seite
alexfupp
 2008-09-19 23:47
#114803 #114803
User since
2008-09-19
1 Artikel
BenutzerIn
[default_avatar]
Hallo,

ich entwickel gerade an einer Anwendung um verteilte Lasttests durchzuführen. Ein Master soll auf vielen Slaves testroutinen starten und diese dann weiter kontrollieren. Ich habe mich mal von den Bezeichnung Client und Server ferngehalten, da das hier wohl eher verwirren wuerde.

Hierfür habe ich bereits eine funktionierende Struktur mit der ich verschiedene Testaufbauten in einer Konfigurationsdatei beschreiben und durch den Master entsprechende Einstellungen veranlassen kann.
Die Kommunikation des Masters mit den Slaves funktioniert bestens, solange die abzuarbeitenden Aufgaben ausreichend kurz sind. Dann verarbeitet der Slave die Anfrage und sendet am Ende der entsprechenden Subroutine seine zurück.

Da ein Slave maximal von einem Master gleichzeitig kontrolliert wird ist keine parallele bearbeitung der Anfragen notwendig und ich handhabe diese in einer Schleife.

Kompliziert wird jetzt jedoch die Anforderung lange Testroutinen starten und später mit einem weiteren Befehl wieder stoppen zu können. Wie kann ich ein externes Programm, (oder auch eine Subroutine) starten und während es läuft weiterhin auf eingehende Verbindungen reagieren? Und wie kann ich dann das entsprechende Programm oder die Subroutine wieder beenden? Die testablauefe haben teilweise kein definiertes Ende, sondern sollen nach einer beliebigen Zeit einfach abgebrochen werden.
murphy
 2008-09-20 11:16
#114808 #114808
User since
2004-07-19
1776 Artikel
HausmeisterIn
[Homepage]
user image
alexfupp+2008-09-19 21:47:18--
[...]
Kompliziert wird jetzt jedoch die Anforderung lange Testroutinen starten und später mit einem weiteren Befehl wieder stoppen zu können. Wie kann ich ein externes Programm, (oder auch eine Subroutine) starten und während es läuft weiterhin auf eingehende Verbindungen reagieren?


Indem Du mehrere Threads oder Prozesse verwendest.

Quote
Und wie kann ich dann das entsprechende Programm oder die Subroutine wieder beenden?
[...]


Indem Du dem entsprechenden Kindprozess ein Signal schickst oder eine Statusvariable setzt, die der entsprechende Thread beachtet und sich selbst beendet (Bei Threads ist das erzwungene Beenden im Allgemeinen nicht zu empfehlen, selbst wenn die Threadbibliothek das kann.)
When C++ is your hammer, every problem looks like your thumb.
<< >> 2 Einträge, 1 Seite



View all threads created 2008-09-19 23:47.