【问题标题】:How to keep data temporary somewhere and using the same to store it in database every 10 minutes?如何将数据临时保存在某处并每 10 分钟将其存储在数据库中?
【发布时间】:2020-12-05 15:14:41
【问题描述】:

我想解决我的一个设计问题,我正在获取多个事件数据,但对于一种数据,我不想立即存储该事件相反,我想等待 10 分钟让他们发生这些事件,但想保持事件计数的发生,这样一旦达到 10 分钟的间隔,我就可以将计数与事件累积存储起来,这将减少涉及数据库的操作。

例如 假设我有三个事件,即 EV1EV2EV3。事件 EV3 在我的应用程序中以非常大的数量发生,其他两个事件不太频繁。但我不关心捕获事件的每个触发器,但我有兴趣知道该事件 (EV3) 发生了多少次。因此,考虑通过在某处即时存储计数并在每 10 分钟内转储一次,从而以 10 分钟的间隔捕获 EV3 计数。

请为它提出一个可以在Java中使用的好而简单的设计,在此先感谢。

【问题讨论】:

    标签: java algorithm performance design-patterns


    【解决方案1】:

    您可以使用缓存来临时存储您的数据(如 Redis),然后将数据保存到您的数据库中。不确定您的事件是什么,但这是临时存储数据并减少数据库写入的一般设计。

    【讨论】:

    • 要查找事件的累积总和,您可以编写另一个脚本并并行执行,从缓存中获取数据并找到总和。但不确定这是不是最好的方法
    • 您的回答可能会引导我思考更好的解决方案。谢谢,但仍在寻找可以更好地解决问题的解决方案。
    • 'Better' 是非常主观的,你到底想改进什么?你没有具体说明你目前在做什么,发生了什么事件(是来自单个客户端还是多个客户端),是否共享等:您需要在您的问题中更加清晰明确的答案
    • 这个答案将我重定向到一个解决方案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-05-28
    • 2017-05-02
    • 1970-01-01
    • 2019-05-07
    • 2014-09-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多