当一个模块的单次运行拥有成功和失败的时候,如何统计模块的执国外服务器行成功率
类似 celery 或邮件模块,以邮件发送为例:
邮件发送可以捕获到成功和失败
如何不冗余且高效的统计一个月内邮件发送的成功率?
难道要每发送一次邮件就往数据库里写一条数据么?然后写 sql 根据时间和结果 count 统计?
不存关系型数据库的话,存缓存的话又该怎么存数据?
总觉得不论怎么设计都很臃肿,缓存还能设置个过期时间,关系型数据库还要手动去清除老数据
因为我只需要一个月内的数据统计,能否做到实时计算存储?
用 count 字段记录某个模块的成功 /失败
要做统计 -> 必然是要落盘的 -> 不然数据哪里来
-----
数据量大 上 redis 1s 刷一次盘 多少个模块一个月就多少条数据
我有想过这个,但是使用 count 字段记录就无法记录时间段了,比如我想要实时显示当前时间近 1 个月内的数据
那就一天一条数据啊。。。 转动你的小脑袋瓜子,一个月不就是 30 条数据么。
还是取决于你的统计粒度。你先思考业务的最小粒度吧
用 Prometheus
感觉这是个日志的问题,elasticsearch 感觉满足你的需求
我用了 的方法,然后存 redis 里一天一条数据,30 天过期,挺好的 感谢
23333,能解决就好