Heim >PHP-Framework >Workerman >Der Timer im Workerman wird nicht wirksam
Die Frage führt zu:
Fügen Sie einen WorkermanLibTimer in start_gateway.php ein und führen Sie ihn alle zwei Sekunden aus. Bei jeder Ausführung wird zunächst ein Textstück in einer Textdatei aufgezeichnet.
Es gibt kein Problem, wenn es als php start.php start ausgeführt wird, aber wenn es als php start.php start -d ausgeführt wird, scheint es, dass der Timer nicht läuft.
start_gateway.php-Code lautet wie folgt
Problem gelöst:
Die Geschäftslogik muss im onXXX-Rückruf ausgeführt werden (im Handbuch hervorgehoben). Mit anderen Worten, der Timer kann nicht ausgeführt werden, bevor Worker::runAll();
ausgeführt wird.
Da der Code, der vor der Ausführung von Worker::runAll(); ausgeführt wird, zum Hauptprozess gehört, kann der Hauptprozess keinen Geschäftscode haben und der Geschäftscode des Hauptprozesses wird vom untergeordneten Prozess geerbt. Dies führt dazu, dass die erwarteten Ergebnisse nicht übereinstimmen.
Im obigen Beispiel kann der Timer in onWorkerStart ausgeführt werden. Es wird empfohlen, ihn in den $businessworker->onWorkerStart-Rückruf in start_businessworker.php einzufügen.
Empfohlene verwandte Artikel und Tutorials: Workerman-Tutorial
Das obige ist der detaillierte Inhalt vonDer Timer im Workerman wird nicht wirksam. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!