Ankündigung

Einklappen
Keine Ankündigung bisher.

Stabilitätsprobleme

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    #16
    Hallo,

    wunderbar, dann hätten wir den Übeltäter ja gefunden.
    Ich habe den eval_trigger (Impuls vom Stromzähler) mal deaktiviert.

    Ich verstehe aber hier das Problem nicht ganz.
    Wenn jetzt ein zusätzlicher Worker gestartet wird, ist der ja recht bald Arbeitslos, weil er diesen Task abgearbeitet hat.
    Warum wird dieser Worker dann nicht wieder beendet?

    Gruß,
    Hendrik

    Kommentar


      #17
      Die Worker werden in die Idles einsortiert und bei Bedarf von dort wieder verwendet. Das ist deutlich resoucenschonender, als den Thread zu beenden und späret einen neuen Thread zu erzeugen.

      Das Problem ist ein anderes, Wie ich in meinem letzten Post beschrieben hatte, erzeugst Du die Worker schneller, als sie abgearbeitet werden.

      Mir ist übrigens so, als hätten wir genau diese Diskussion vor ca. einem Jahr schon mal geführt.
      Viele Grüße
      Martin

      There is no cloud. It's only someone else's computer.

      Kommentar


        #18
        Hallo,

        Zitat von Msinn Beitrag anzeigen
        Das Problem ist ein anderes, Wie ich in meinem letzten Post beschrieben hatte, erzeugst Du die Worker schneller, als sie abgearbeitet werden.
        Das verstehe ich nicht. Die Informationen kommen ca alle 10s rein; Das Item wirt also alle 10s getriggert.
        Code:
        (sh.Haustechnik.Stromzaehler.FinalerCounter.db('max', '2i', '1i')- sh.Haustechnik.Stromzaehler.FinalerCounter.db('min', '2i', '1i'))*60.0*1000.0/800.0
        Das sind zwei Datenbankanfragen und Multiplikation/Division.

        Damit sollte der Rechner doch alle 10s klarkommen? Es ist ein i6500.

        Ich kann mich nicht daran erinnern, dass du mir das schonmal erklärt hättest.

        Gruß,
        Hendrik

        Kommentar


          #19
          Hallo,
          Es kann gut sein, dass die Abfrage der DB und das Eval zu lange dauern.

          Ich hatte das auch, und dann eine Logik dafür gemacht.

          Was genau soll das Item "FinalerCounter" machen?

          Kommentar


            #20
            Hallo,

            das kann mehr als 10s dauern??

            Edit: ich habe gemessen. Das dauert "ungefähr" 0.14256763458251953s.

            Eigentlich brauche ich das Item nicht mehr. Aber kurz:
            Ich habe einen S0 Stromzähler an einem Merten Binäreingang. Dieser kann aber nur bis xyz Zählen. Danach gibt es einen Überlauf.
            Also muss ich rechnen:
            FinalerCounter=xyz*BisherigeÜberläufe+Counter

            Danach rechne ich den Verbrauch der letzten 1 bzw. 10 minuten über o.g. Formel.

            Mitlerweile mache ich das aber mit einem Frequenzzähler:
            Code:
                        eval: 4500.0/sh.Haustechnik.Stromzaehler.FinalerCounter.prev_age()
                        eval_trigger: Haustechnik.Stromzaehler.FinalerCounter​
            Das ist auch präziser und braucht keine db-Abfrage.

            Gruß,
            Hendrik
            Zuletzt geändert von henfri; 18.02.2023, 20:22.

            Kommentar

            Lädt...
            X