Mnesia:你什么时候会限制交易重试次数?

时间:2012-02-08 12:37:49

标签: erlang mnesia

Mnesia允许您限制重试交易的次数:

MyFun = fun() -> ... end,
{atomic, ok} = mnesia:transaction(MyFun, [], 42)

如果您未指定数字,则默认为infinity

我从未见过任何实际限制重试次数的代码。你呢?在什么情况下它有用?

1 个答案:

答案 0 :(得分:1)

您可以在实施soft real-time systems时限制重试次数,其中某些操作必须在规定的持续时间内或在指定的时间内发生,如果不是,则必须采取其他措施。

在这种情况下,您不希望其他进程等待,而不确定事务是否成功。但是,mnesia的几个事务上下文可能会改变应用程序中事务提交的方式。

但是,根据我的个人经验,使用mnesia的实时系统应该使用mnesia事件来处理,任何写入,更新,删除,插入,e.t.c都会为所有订阅的进程/服务器生成一个瞬时事件。所以收到此事件消息的人会采取他们想要的任何行动。