[Java] Java Polling

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von Hanskopf, 11. Juni 2012 .

Schlagworte:
Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. 11. Juni 2012
    Zuletzt bearbeitet: 24. Juli 2012
    Java Polling

    Hat sich erledigt...
     
  2. 11. Juni 2012
    Zuletzt bearbeitet: 11. Juni 2012
    AW: Java Polling

    Wenn du die Methode aufrufst und check sich innerhalb dieser Methode nicht mehr ändern kann, dann bist du in einer Endlosschleife.

    D.h. für dich, dass du die Schleifendurchläufe zählen solltest, damit du abbrechen kannst oder du gehst völlig falsch an die Sache ran. (wenn du z.b. mit Threads arbeitest, dann kann man das schöner lösen)

    Wenn du etwas mehr posten würdest, könnte man dir hier wohl besser helfen (z.b. wo check gesetzt/verändert wird).
     
  3. 11. Juni 2012
    Zuletzt bearbeitet: 25. Juli 2012
    AW: Java Polling

    Hat sich erledigt...
     
  4. 11. Juni 2012
    AW: Java Polling

    Wieso nicht einfach mehrere States und eine davon gibt zurück ob gerade Arbeit verrichtet wird oder nicht? Polling ist immer unschön und sollte soweit es geht vermieden werden. Gibst Du dem Clienten bescheid, dass noch ein wenig Zeit benötigt wird (PROC_STATE_WORKING, whatever), kann der Client anderswo noch weiter arbeiten und muss nicht unnötig warten (Was u.a. auch extrem zur CPU-Last beiträgt)
     
  5. 11. Juni 2012
    Zuletzt bearbeitet: 25. Juli 2012
    AW: Java Polling

    Hat sich erledigt...
     
  6. 11. Juni 2012
    Zuletzt bearbeitet: 11. Juni 2012
    AW: Java Polling

    Ich habe nicht 100%tig verstanden was du exakt machen willst. Ist dir das Prinzip von Listenern geläufig? [Beispielcode in Arbeit...]

    Code:
    import java.util.ArrayList;
    import java.util.List;
    
    public class DataProvider {
    
    [B]
     public static void main(String[] args) {
    
     DataProvider dataProvider = new DataProvider();
     dataProvider.addDataChangeListener(new DataChangeListener() {
    
     @Override
     public void onDataChange() {
     System.out.println("Daten wurden geändert!");
     }
     });
     
     dataProvider.startDemoLoop();
     }[/B]
    
     /**
     * Das Listener Interface
     * 
     */
     public interface DataChangeListener {
    
     void onDataChange();
    
     }
    
     /**
     * 
     * Die eigentliche Klasse
     */
     private List<DataChangeListener> dataChangeListeners = new ArrayList<>();
    
     public void dataChecked() {
     // Was auch immer hier passiert
     notifyAllDataChangeListeners();
     }
    
     [B]/**
     * Test-Methode um dataChecked() aufzurufen, das macht deine Datenbank
     */
     public void startDemoLoop() {
     while (true) {
     try {
     Thread.sleep(10000);
     } catch (InterruptedException e) {
     e.printStackTrace();
     }
     dataChecked();
     }
    
     }[/B]
    
     public void addDataChangeListener(DataChangeListener dataChangeListener) {
     dataChangeListeners.add(dataChangeListener);
     }
    
     private void notifyAllDataChangeListeners() {
     for (DataChangeListener dataChangeListener : dataChangeListeners) {
     dataChangeListener.onDataChange();
     }
     }
    
    }
    
    So würde ich das lösen (natürlich nicht alles in einer Datei).
    startDemoLoop() könnte man auch aus einem Thread aufrufen um das Prinzip noch deutlicher zu machen. Die fetten Sachen haben nichts mit deinem Problem direkt zutun bzw. sind nur dafür da, dass das Beispiel etwas tut.
     
  7. 11. Juni 2012
    AW: Java Polling

    Nein...noch nicht.


    Ich warte jetzt erstmal dein Beispiel ab
     
  8. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.