Timer bei "Destroy" zurücksetzen

Hallo Leute,

ich habe bei nahezu allen Modulen so etwas wie dieses hier:

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):

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

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

Muss ich selber mal nachsehen…

Uli

Gesendet von iPhone mit Tapatalk

Jupp. Das ist nicht notwendig. :slight_smile:

paresy

…dann lösche ich das mal überall…:wink:

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

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

Das ist nicht korrekt. Destroy wird nur aufgerufen, wenn die Instanz gelöscht wird.

paresy

…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

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

Das ist doch ewig auf der Liste von Fehlern im SDK :smiley:
Es wird auch beim shutdown und auch beim Modul-Update aufgerufen.
Michael