当一个模块的单次运行拥有成功和失败的时候,如何统计模块的执行成功率
类似 celery 或邮件模块,以邮件发送为例:
邮件发送可以捕获到成功和失败 如何不冗余且高效的统计一个月内邮件发送的成功率?
难道要每发送一次邮件就往数据库里写一条数据么?然后写 sql 根据时间和结果 count 统计?
不存关系型数据库的话,存缓存的话又该怎么存数据?
总觉得不论怎么设计都很臃肿,缓存还能设置个过期时间,关系型数据库还要手动去清除老数据
因为我只需要一个月内的数据统计,能否做到实时计算存储?
     1 
                    
                    leopod1995      2021-03-08 16:43:24 +08:00 
                    
                    用 count 字段记录某个模块的成功 /失败 
                要做统计 -> 必然是要落盘的 -> 不然数据哪里来 ----- 数据量大 上 redis 1s 刷一次盘 多少个模块一个月就多少条数据  | 
            
     2 
                    
                    HashV2   OP @leopod1995  
                我有想过这个,但是使用 count 字段记录就无法记录时间段了,比如我想要实时显示当前时间近 1 个月内的数据  | 
            
     3 
                    
                    leopod1995      2021-03-08 17:55:02 +08:00 
                    
                    
                 | 
            
     4 
                    
                    qiayue   PRO 用 Prometheus 
                 | 
            
     5 
                    
                    Thinginitself      2021-03-09 11:37:49 +08:00 
                    
                    感觉这是个日志的问题,elasticsearch 感觉满足你的需求 
                 | 
            
     6 
                    
                    HashV2   OP @Thinginitself 我用了 @leopod1995 的方法,然后存 redis 里一天一条数据,30 天过期,挺好的 感谢 
                 | 
            
     7 
                    
                    Thinginitself      2021-03-10 11:40:45 +08:00 
                    
                    @HashV2 23333,能解决就好 
                 |