【发布时间】:2015-11-03 09:20:55
【问题描述】:
一个进程试图从其消息队列中获取消息的“事务”何时被视为已提交或回滚?换句话说,在什么执行点上,消息会从消息队列中永久删除?
【问题讨论】:
-
这里有一篇相当不错的关于接收机制的文章:ndpar.blogspot.co.za/2010/11/…
标签: erlang
一个进程试图从其消息队列中获取消息的“事务”何时被视为已提交或回滚?换句话说,在什么执行点上,消息会从消息队列中永久删除?
【问题讨论】:
标签: erlang
当它被接收呼叫读取时。
如果消息在消息队列中并由调用接收的进程读取,那么它只是内存操作,没有其他进程可以竞争数据,因此它本身没有事务性质;不需要锁定或回滚等,但因为它只是内存操作,所以没关系。
你使用的语言让我担心你认为有比实际更多的保证。重要的是要记住,在基本的消息发送和接收级别(OTP 可能提供的任何额外层或您自己编写的顶部没有任何额外的层)您发送的消息没有任何保证它们将被传递,或者您发送到的过程甚至存在。
【讨论】: