问题描述
我需要有关正在研究的项目的性能和查询策略的算法建议。项目数据库是MongoDb,代码库是带有MongoDB C#驱动程序的.Net Core。
下面,我将提供有关付费视频对话数据库模型的一些信息。所有数据都存储在MongoDB中,下一个json数据是 Calls 集合中的文档之一,该文档提供有关通话记录的信息。 Created
字段是以OADate表示的日期
{
"_id": "2753cd97-3797-43bf-86cc-63e658bc7bdb","Created": 44114.92761892361,"IsDeleted": false,"PremiumUserId": {
"$binary": "W/7hgstLr0erwlI9Y7BE/Q==","$type": "3"
},"PartnerUserId": {
"$binary": "KHb8k23XQ0iEMVubumrnFg==","Completed": false,"Duration": 0
}
以下数据模型是 AccountCredits 中的文档之一,该文档提供有关高级用户剩余时间的信息。如果Duration
字段中的值减小到0,则相关调用将自动结束,但这是另一回事。
{
"_id":"2d4e69be-7646-4d9b-b20c-2329316dc7f1","Created":44114.91612638889,"IsDeleted":false,"UserId":{"$binary":"W/7hgstLr0erwlI9Y7BE/Q==","$type":"3"},"Duration":21600000
}
当我们有成千上万次通话时,我想每秒增加通话中的Duration
字段并减少 AccountCredits 集合中的Duration
。目前,我每5秒使用Hangfire进行一次更新,但是在进行更新时会遇到很多障碍。我可以使用1秒钟的时间,但在那种情况下,我需要更多的资源,例如cpu,内存等。
根本问题是,如何为每个2个集合文档编写一个高性能查询并管理当前活动呼叫的所有持续时间。最重要的是:“所有更新都应以最小的延迟完成。”
预先感谢您的帮助
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)