4
プロセスA
は、send_after
(これをrequest
と呼ぶ)で1分後にB
にリクエストを送信します。しかしB
には1分でキャンセルできます。送信中にメッセージをキャンセルすることはできますか?
Can B
cancel
〜A
を送信して、この時間内にそのメッセージが送信されないようにしますか?
プロセスA
は、send_after
(これをrequest
と呼ぶ)で1分後にB
にリクエストを送信します。しかしB
には1分でキャンセルできます。送信中にメッセージをキャンセルすることはできますか?
Can B
cancel
〜A
を送信して、この時間内にそのメッセージが送信されないようにしますか?
はいできます。
erlang:send_after
を使用している場合は、TimerRef
を返します。 リクエストをキャンセルする場合は、erlang:cancel_timer(TimerRef)
またはerlang:cancel_timer(TimerRef, Options)
に電話するだけです。あなたがメッセージをキャンセルするB
を処理したい場合は、あなたの場合は
、あなたはB
へA
からTimerRef
を送信し、この特定の送信要求をキャンセルするためにプロセスB
でerlang:cancel_timer(TimerRef)
を呼び出す必要があります。
詳細については、erlangのドキュメントerlang:cancel_timer/2
をご覧ください。
このアプローチを試してみよう、ちょうど私に数分を与えると私はあなたupvote :) –