在Riak从桶中连续生产钥匙

时间:2014-12-19 20:24:01

标签: erlang riak

有一个函数stream_list_keys/2(来自riak-erlang-client)允许接收某个存储桶中的所有密钥。

但是这个功能在发送完毕后完成发送密钥。 是否有可能继续获得钥匙?那是收到Riak中出现的密钥吗?

2 个答案:

答案 0 :(得分:0)

这可以通过自定义commit hook来完成,以从正在存储的对象中提取所需数据,并将该信息发送到侦听进程。请注意,如果precommit钩子抛出异常或返回除riak对象之外的任何内容,则put操作将被中止,并且不会存储该对象。

答案 1 :(得分:0)

简短的回答是否定的。流密钥的能力仅基于已存在的密钥。你要求的是能够"订阅"对功能不是为其设计的事件。

正如乔建议的那样,提交钩子可能是你想要在Riak做什么的最佳方式。根据您提出问题的方式,我建议您使用Post-Commit挂钩(http://docs.basho.com/riak/latest/dev/advanced/commit-hooks/)而不是Pre-Commit Hooks。正如Joe提到Pre-Commit钩子中的错误会导致密钥不被保留,我不相信这是你正在寻找的行为。