ホームページ >PHPフレームワーク >Workerman >ワーカーマンのタイマーが有効になりません

ワーカーマンのタイマーが有効になりません

王林
王林オリジナル
2019-12-13 09:51:142854ブラウズ

ワーカーマンのタイマーが有効になりません

質問は次のようになります:

\Workerman\Lib\Timer を start_gateway.php に配置し、2 秒ごとに実行します。各実行では、最初にテキストが記録されます。テキストファイルに。

php start.php startとして実行する場合は問題ないのですが、php start.php start -dとして実行するとタイマーが動いていないようです。

start_gateway.php コードは次のとおりです

ワーカーマンのタイマーが有効になりません

ワーカーマンのタイマーが有効になりません

ワーカーマンのタイマーが有効になりません

##問題解決策:

ビジネス ロジックは、onXXX コールバックで実行する必要があります (マニュアルで強調されています)。つまり、

Worker::runAll(); が実行される前にタイマーを実行することはできません。

Worker::runAll(); が実行される前に実行されるコードはメインプロセスに属するため、メインプロセスには業務コードを含めることはできず、メインプロセスの業務コードは子プロセスに継承されます。予想される結果と一致しない結果になります。

上記の例では、onWorkerStart にタイマーを入れて実行できますが、start_businessworker.php の $businessworker->onWorkerStart コールバックに入れることをお勧めします。

おすすめの関連記事とチュートリアル:

workerman チュートリアル

以上がワーカーマンのタイマーが有効になりませんの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。