gpt4 book ai didi

ravendb - 关于在 RavenDB 中轮询新文档的建议

转载 作者:行者123 更新时间:2023-12-04 19:43:09 28 4
gpt4 key购买 nike

我想在我的 Raven DB 中轮询新文档。推荐的方法是什么?我可以使用 IndexTimestamp 还是可以依赖文档的顺序?

我想我想分两步完成:
1.检查是否有新的东西,如果有:
1.1。获取最新的 X 文档。

或者一步:获取最新的 X 文档并让它返回这些文档,或者根据我发送的一些论点告诉我没有新内容。

仅供引用:我没有与文档对应的 CLR 对象。

最佳答案

我不会轮询它,但我会使用 RavenDB 附带的 Changes API 来从 RavenDB 获取连续的文档流。

在此处查看更改 API http://ravendb.net/docs/2.0/client-api/changes-api

我个人会将 Changes API 与某种消息总线 (RabbitMQ) 一起使用,以确保每个更改都得到处理并具有弹性。

如果您仍想投票,只需使用您的日期时间创建一个索引并按降序排序。

var result = session.Query<Orders>()
.OrderByDescending(x => x.Created)
.Take(10)
.ToList();

如果您需要处理每个文档,您可能希望创建包含您获得的文档 ID 的标记文档,并确保它们没有被处理。

要做到这一点:
marker id : polling/processed/order/1

指数:
from o in orders
let processed = LoadDocument("polling/processed/" + o.Id)
select new {
WasProcessed = processed != null,
Created = o.Created
}

给你一些选择,希望对你有帮助:)

关于ravendb - 关于在 RavenDB 中轮询新文档的建议,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6520981/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com