+ Antworten
Seite 1 von 2 1 2 LetzteLetzte
Ergebnis 1 bis 10 von 11
  1. #1
    Registriert seit
    Apr 2007
    Ort
    Lüneburg
    Beiträge
    3,906

    Standard Timer bei "Destroy" zurücksetzen

    Hallo Leute,

    ich habe bei nahezu allen Modulen so etwas wie dieses hier:
    PHP-Code:
    public function Destroy() 
        {
            
    //Never delete this line!
            
    parent::Destroy();
            
    $this->SetTimerInterval("Timer_1"0);
        } 
    Das Ansinnen war, dass laufende Timer zurückgesetzt werden sollen wenn das Modul "zerstört" wird.
    Ist das überhaupt nötig?
    Wenn ja, sollte man dann ein "@" davor setzen?

    Warum frage ich? Bei einem Modulupdate z.B. bekomme ich an der Stelle mit $this->SetTimerInterval("Timer_1", 0); eine Fehlermeldung (exemplarisch):
    Code:
    21.09.2020, 11:39:44 | IPS2****b      | <br />
    <b>Warning</b>:  InstanceInterface is not available in <b>/var/lib/symcon/modules/*****/module.php</b> on line <b>9</b><br />
    Joachim
    IP-Symcon seit 12/2009, iPhoneApp seit 01/2011, IPSView seit 12/2014!
    3xSiemensLOGO0BA7+DM16, 1xInstar 3010PoE, 1xInstar 2905PoE, 1x1-WireHub mit DS2450 von Eservice-online, 15xDS1820, 1xDS2423, 1xDS2408

  2. #2
    Registriert seit
    Oct 2014
    Beiträge
    744

    Ist es nicht so, dass wenn die Instanz gelöscht wird, der Timer automatisch mit gelöscht wird?

    Muss ich selber mal nachsehen....


    Uli


    Gesendet von iPhone mit Tapatalk

  3. #3
    Registriert seit
    Feb 2005
    Ort
    Lübeck
    Beiträge
    24,119

    Jupp. Das ist nicht notwendig.

    paresy

  4. #4
    Registriert seit
    Apr 2007
    Ort
    Lüneburg
    Beiträge
    3,906

    ...dann lösche ich das mal überall...

    Für was wäre "Destroy" denn "richtig gut geeignet"? Was wäre dort gut aufgehoben?

    Joachim
    IP-Symcon seit 12/2009, iPhoneApp seit 01/2011, IPSView seit 12/2014!
    3xSiemensLOGO0BA7+DM16, 1xInstar 3010PoE, 1xInstar 2905PoE, 1x1-WireHub mit DS2450 von Eservice-online, 15xDS1820, 1xDS2423, 1xDS2408

  5. #5
    Registriert seit
    Oct 2014
    Beiträge
    744

    Zitat Zitat von JPaeper Beitrag anzeigen
    ...dann lösche ich das mal überall...

    Für was wäre "Destroy" denn "richtig gut geeignet"? Was wäre dort gut aufgehoben?

    Joachim
    Wenn du zum Beispiel instanzbasierte Profile erstellst, die dann gelöscht werden können, wenn die Instanz gelöscht wird.

    Uli


    Gesendet von iPhone mit Tapatalk

  6. #6
    Registriert seit
    Jun 2012
    Ort
    House of Dragons @ Lübeck
    Beiträge
    10,637

    Aber nicht einfach so löschen, die Profile.
    Zum einem wird destroy auch beim modul-Update oder Symcon-Shutdown aufgerufen und zum anderen kann der User die profile ja auch anderweitig noch benutzen.
    Also erst prüfen, dann löschen.
    Michael
    on Win10VM (ESXi): I7, 32GB RAM, HW-RAID5, 2xSat | HW: pivccu + ca.130 Geräte (ca.550ch), EM1000, CUL, 1Wire, FritzBox Cable, Android Phone + Tablet, Onkyo NR| SW: IPS, Apache2(mod_ssl/PHP), MySQL, hMailServer, PRTG, RoundCube, Win2016 Ess., MediaPortal, Kodi

  7. #7
    Registriert seit
    Oct 2014
    Beiträge
    744

    Zitat Zitat von Nall-chan Beitrag anzeigen
    Aber nicht einfach so löschen, die Profile.
    Zum einem wird destroy auch beim modul-Update oder Symcon-Shutdown aufgerufen und zum anderen kann der User die profile ja auch anderweitig noch benutzen.
    Also erst prüfen, dann löschen.
    Michael
    Meine Profile werden immer mit der zugehörigen InstanzID angelegt. Wird die Instanz gelöscht, dann brauche ich das zugehörige Profil nicht mehr.

    Uli


    Gesendet von iPhone mit Tapatalk

  8. #8
    Registriert seit
    Feb 2005
    Ort
    Lübeck
    Beiträge
    24,119

    Zitat Zitat von Nall-chan Beitrag anzeigen
    Aber nicht einfach so löschen, die Profile.
    Zum einem wird destroy auch beim modul-Update oder Symcon-Shutdown aufgerufen und zum anderen kann der User die profile ja auch anderweitig noch benutzen.
    Also erst prüfen, dann löschen.
    Michael
    Das ist nicht korrekt. Destroy wird nur aufgerufen, wenn die Instanz gelöscht wird.

    paresy

  9. #9
    Registriert seit
    Apr 2007
    Ort
    Lüneburg
    Beiträge
    3,906

    ...mir ist diese Fehlermeldung im Zusammenhang von Modul-Updates aufgefallen. Wird die (alte) Instanz dabei gelöscht (bevor das Update neu erstellt wird)?
    Was passiert da technisch?

    Joachim
    IP-Symcon seit 12/2009, iPhoneApp seit 01/2011, IPSView seit 12/2014!
    3xSiemensLOGO0BA7+DM16, 1xInstar 3010PoE, 1xInstar 2905PoE, 1x1-WireHub mit DS2450 von Eservice-online, 15xDS1820, 1xDS2423, 1xDS2408

  10. #10
    Registriert seit
    Feb 2005
    Ort
    Lübeck
    Beiträge
    24,119

    Intern wird nur die Instanziierung entsprechend entfernt und nach dem Modul-Update neu erstellt. Die Detroy Funktion sollte nur aufgerufen werden, wenn die Instanz tatsächlich vollständig entfernt wird.

    paresy

Ähnliche Themen

  1. Antworten: 2
    Letzter Beitrag: 01.05.16, 15:11
  2. Antworten: 2
    Letzter Beitrag: 10.11.14, 08:56
  3. "Verhalten" der Skripte bei "IPS_SetScriptFile"
    Von JPaeper im Forum Skripte, PHP, SQL
    Antworten: 6
    Letzter Beitrag: 27.12.12, 01:02