Hallo, Gast! (Registrieren)

Letzte Ankündigung: MyBB 1.8.38 veröffentlicht (30.04.24)


Benutzer, die gerade dieses Thema anschauen: 2 Gast/Gäste
Hooks werden nicht immer ausgeführt!
#1
Moin!

Ich bin am debuggen eines Problems. Dabei habe ich festgestellt, dass Hooks anscheinend nicht immer ausgeführt werden. Das Folgende ist meine zu Debugzwecken veränderte inc/functions.php:

PHP-Code:
$file fopen("/tmp/mailqueue""a+");
fwrite($filedate("Y.m.d G:i:s")." 3-Pre Hook\n");
fclose($file);

$plugins->run_hooks_by_ref("send_mail_queue_mail"$query);

$file fopen("/tmp/mailqueue""a+");
fwrite($filedate("Y.m.d G:i:s")." 3-Post Hook\n");
fclose($file); 

Im Hook sieht es so aus:

PHP-Code:
$plugins->add_hook('send_mail_queue_mail''syncom_send_mail_queue_mail');

...

function 
syncom_send_mail_queue_mail($query)
{
        global 
$db;

        
$date date("Y.m.d G:i:s");
        
$file fopen("/tmp/mailqueue""a+");
        
fwrite($file$date." 2-Mark\n");
... 

Dieses Logfile sieht nun so aus:
Code:
2011.11.16 12:58:06 3-Pre Hook
2011.11.16 12:58:06 2-Mark
2011.11.16 12:58:06 3-Post Hook
2011.11.16 12:58:06 3-Pre Hook
2011.11.16 12:58:06 3-Post Hook
2011.11.16 12:58:07 3-Pre Hook
2011.11.16 12:58:07 3-Post Hook
2011.11.16 12:59:04 3-Pre Hook
2011.11.16 12:59:04 3-Post Hook
2011.11.16 12:59:04 3-Pre Hook
2011.11.16 12:59:04 3-Post Hook
2011.11.16 12:59:05 3-Pre Hook
2011.11.16 12:59:05 3-Post Hook
2011.11.16 13:02:02 3-Pre Hook
2011.11.16 13:02:02 3-Post Hook
...
2011.11.16 13:02:40 3-Pre Hook
2011.11.16 13:02:40 2-Mark
2011.11.16 13:02:40 3-Post Hook
2011.11.16 13:02:40 3-Pre Hook
2011.11.16 13:02:40 3-Post Hook
D.h. dass immer mal wieder der Hook aufgerufen wird - aber eher unregelmäßig. Woran liegt das? Was kann ich dagegen machen?

Da mein gesamtes Kommunikationssystem auf der Zuverlässigkeit der Hooks basiert, schiebe ich hier leicht Panik.

Michael
Zitieren
#2
Das hat wahrscheinlich etwas damit zu tun, dass die Funktion beim shutdown ausgeführt wird und dort schon verschiedene System neu gestartet werde müssen, darunter das Plugin-System (scheinbar ohne die Hooks wieder zu laden, was ein Bug wäre). Du kannst versuchen die Einstellung useshutdownfunc umzustellen um dies zu verhindern.
[Bild: banner.png]

Bitte die Foren-Regeln beachten und im Profil die verwendete MyBB-Version angeben.
Zitieren
#3
Danke für die schnelle Antwort!

Die Einstellung "useshutdownfunc" ist bei mir derzeit auf "nein". Was kann schlimmstenfalls passieren, wenn ich die umstelle? Das Forum hat derzeit >2.000 Posts am Tag, da bin ich vorsichtig mit dem Experimentieren, wenn ich die Folgen nicht kenne Smile

Michael
Zitieren
#4
Das ist schon auf Nein? Damit hätte ich erwartet, dass es auf jeden Fall funktioniert.

Passieren kann da nichts, PHP5 unterstützt die shutdown-Funktionen und von Problemen habe ich auch nichts gehört.

Ansonsten bleibt mein Rat ausnahmsweise mal eine Code-Änderung zu verwenden. Wink Manchmal geht es einfach nicht anders.
[Bild: banner.png]

Bitte die Foren-Regeln beachten und im Profil die verwendete MyBB-Version angeben.
Zitieren
#5
http://dev.mybb.com/issues/1710
Zitieren
#6
Stimmt, dann wird run_shutdown() immer nochmal über die destruct-Funktion ausgeführt...
[Bild: banner.png]

Bitte die Foren-Regeln beachten und im Profil die verwendete MyBB-Version angeben.
Zitieren
#7
Danke für die Recherche!

Das klingt nach einiger Bastelei :-(
Zitieren
#8
Fang mit dem Shutdown Setting an, das auf Ja zu stellen könnte schon einige Probleme beheben...
Zitieren
#9
(16.11.2011, 15:41)frostschutz schrieb: Fang mit dem Shutdown Setting an, das auf Ja zu stellen könnte schon einige Probleme beheben...
Damit könnte der Hook dann allerdings gar nicht mehr funktionieren.
[Bild: banner.png]

Bitte die Foren-Regeln beachten und im Profil die verwendete MyBB-Version angeben.
Zitieren
#10
Wenn "useshutdownfunc" aktiviert ist, werden übrigens keinerlei Benachrichtigungen mehr ausgesendet. Dementsprechend ist es anscheinend besser, die Funktion deaktiviert zu belassen.
Zitieren


Möglicherweise verwandte Themen…
Thema Verfasser Antworten Ansichten Letzter Beitrag
  Task wird nicht ausgeführt Schnapsnase 27 7.360 31.03.2021, 09:28
Letzter Beitrag: StefanT
  Was genau sind "Hooks"? itsmeJAY 1 1.507 05.02.2019, 09:18
Letzter Beitrag: bv64
  [geteilt] Reihenfolge der Hooks? Sense 6 2.888 15.12.2013, 13:46
Letzter Beitrag: Sense
  Reihenfolge der Hooks? Javatic 31 9.421 12.08.2013, 16:08
Letzter Beitrag: Javatic
  Hooks: Dokumentation, in welcher die mitgegebenen Argumente aufgelistet sind? Javatic 2 1.753 27.07.2013, 17:18
Letzter Beitrag: Javatic