gen_server
と呼ばれるIを生成するスーパーバイザーを作成しましたtimer_server
。このtimer_serve
rのタスクの1つは、登録を管理timer:send_interval
し、特定の間隔でpidにメッセージを送信するために呼び出すことです。
gen_server
しかし、私が呼んでいるの初期段階では、timer:send_interval
私はロックアップを取得していました。ドキュメントによると、タイマー:関数はすぐに戻るので、これは非常に厄介でした。
名前を変更gen_server
すると、record_timer_server
この問題は解決しました。私の質問は2つあります:
- アプリケーションの起動時に呼び出された
timer_server
ときにすでにプロセスが存在するのに、なぜ登録済みプロセスを作成できるのですか?timer:start()
timer_server
一度開始すると、関数を使用して呼び出している場合、この関数が名前の検出に不一致を引き起こさないのはなぜsend_interval
ですか?
コードは必要ないと思いますが、必要に応じて更新して追加することができます。