流程A
在B
1分钟后向send_after
发送请求(我们称之为request
)。但B
有1分钟取消它。
可以B
向cancel
发送A
并阻止该消息在此时间段内发送吗?
答案 0 :(得分:7)
是的,你可以。
当您使用erlang:send_after
时,它会返回TimerRef
。
如果您想取消请求,只需致电erlang:cancel_timer(TimerRef)
或erlang:cancel_timer(TimerRef, Options)
。
在您的情况下,如果您希望流程B
取消消息,则必须从TimerRef
向A
发送B
,然后致电erlang:cancel_timer(TimerRef)
在进程B
中取消此特定发送请求。
有关详细信息,请查看erlang文档erlang:cancel_timer/2
。