also ich kann das ja mal kurz erklären.
ich kriege per udp verbindung lognachrichten geschickt. alle 20 sekunden oder so gibts ne nachricht von einer maschine die mir damit signalisiert das sie "online" ist.
die maschine schickt dabei jedes mal ihre maschinen id sowie ihren status ( online,error) mit.
ich möchte jetzt wenn eine nachricht ankommt in meiner datenbank den status der maschine setzen.
wenn man länger als 20 sekunden nichts mehr gehört hat geht sie offline. ansonsten soll der timer wieder hochgesetzt werden und ggf der status verändert werden.
das ganze sollte mit 10-20 maschinen gehen.
gestartet wird das ganze hier :
Der code befindet sich in der klasse die die nachricht empfängt und in ihre einzelheiten aufteilt. dann übergibt sie der Checkonlineklasse die maschinen-id sowie den empfangenen status.
dann soll ein thread gestartet werden der 20 sekunden runter zählt. wenn die gleiche maschine wieder eine nachricht schickt wird der status geändert, und die zeit wieder auf 20 gesetzt.
das ganze fuer jede maschine einzeln.
so sollte das ganze aussehen
da ich nicht so die ahnung von threadprogrammirerung habe versuche ich einfach das umzusetzen was jPat mir immer sagt.
aber anscheind klappt das nicht so ganz .. zumidest kommen wir immer einen schritt weiter.
es muss halt gelöst werden... egal wie.. und würde ich euch nicht haben würde ich das glaube ich nie hinbekommen.
EDIT:
zu pukt 4: da gebe ich dir recht. das macht keinen sinn.. ist mir aber nicht aufgefallen weil es funktioniert hat. danke dir.
ich kriege per udp verbindung lognachrichten geschickt. alle 20 sekunden oder so gibts ne nachricht von einer maschine die mir damit signalisiert das sie "online" ist.
die maschine schickt dabei jedes mal ihre maschinen id sowie ihren status ( online,error) mit.
ich möchte jetzt wenn eine nachricht ankommt in meiner datenbank den status der maschine setzen.
wenn man länger als 20 sekunden nichts mehr gehört hat geht sie offline. ansonsten soll der timer wieder hochgesetzt werden und ggf der status verändert werden.
das ganze sollte mit 10-20 maschinen gehen.
gestartet wird das ganze hier :
Code:
if(level.equals("<199>")){
level = "Machine-Online";
System.out.println("Maschine: "+SsenderId+","+Stype+" online");
// SqlData.setMachineOnline(SsenderId);
CopyOfCheckOnline CheckOnline = new CopyOfCheckOnline(SsenderId,Status);
// System.out.println("status: "+Status);
try {CheckOnline.timer(SsenderId,Status); }
catch (InterruptedException e) {e.printStackTrace();}
}
dann soll ein thread gestartet werden der 20 sekunden runter zählt. wenn die gleiche maschine wieder eine nachricht schickt wird der status geändert, und die zeit wieder auf 20 gesetzt.
das ganze fuer jede maschine einzeln.
so sollte das ganze aussehen
da ich nicht so die ahnung von threadprogrammirerung habe versuche ich einfach das umzusetzen was jPat mir immer sagt.
aber anscheind klappt das nicht so ganz .. zumidest kommen wir immer einen schritt weiter.
es muss halt gelöst werden... egal wie.. und würde ich euch nicht haben würde ich das glaube ich nie hinbekommen.
EDIT:
zu pukt 4: da gebe ich dir recht. das macht keinen sinn.. ist mir aber nicht aufgefallen weil es funktioniert hat. danke dir.