如何在Mnesia中设置记录的到期时间

时间:2019-02-19 21:15:56

标签: erlang elixir mnesia

我正在使用脏写将记录写到失忆症

:mnesia.dirty_write({Table_Name, id, Node.self(), timestamp, msg})

我要删除超过1小时的记录,如何设置有效期限或TTL?

2 个答案:

答案 0 :(得分:2)

Mnesia不支持记录到期/ TTL。您必须自己实现此功能,例如,定期扫描表中的过期记录并将其删除。

答案 1 :(得分:-1)

由于mnesia没有任何ttl机制(至少我找不到一个),所以我编写了一个gen服务器,该服务器删除了早于1小时的mnesia中的所有记录。该gen服务器每1小时激活一次,删除较旧的记录并返回睡眠状态。这是逻辑的代码段

%s

注-表中的每个记录都有10个字段,第一个字段(id)是键。参数$ 3是时间戳,截止时间=当前时间戳-1小时