rabbitmq延迟队列时间两天,并且有几十万条数据,这样的还适合用延迟队列来做吗

smallcatooo 发布于 10/16 13:25
阅读 595
收藏 0

【华为云1024程序员节·向云而生】预约直播 抽14件华为电子产品礼包!>>>

有个功能需要处理客户数据,两天以后再做处理,并且有几十万条数据,这样的场景还适合用延迟队列吗,会不会存太久了

加载中
0
smallcatooo
smallcatooo
最终我们解决的方式是:先入库,然后每5分钟查询过期两天的数据(这里为了确保数据不遗漏,是用时间段来控制,每一次执行完,把结束时间记录下来,就是下次的开始时间),并把数据推送到mq中,然后消费者消费数据。并另起一个任务,每小时监测一次数据处理情况。
0
快乐的一只小青蛙
快乐的一只小青蛙

这个要开持久化,如果读写大的话,还是别用rabbitmq了吧

0
我是一名程序员
我是一名程序员

保存数据库,开个定时也行

0
gammey
gammey

这种还是入库吧

tonglingbaoyu
tonglingbaoyu
回复 @smallcatooo : 可以开启多个队列啊,把五分钟的数据有机放入这多个队列, 然后多个队列可以多个消费者消费啊,这样数据分摊到每个队列应该比较少吧 比如四五个队列 一个队列也就几万条数据
smallcatooo
smallcatooo
如果用延迟队列做,因为数据量大,只把id放入队列中可以吗
smallcatooo
smallcatooo
是要入库,如果用定时任务做,要求必须5分钟处理一次过期两天的数据。为了解决效率问题,一种是将查询出来的5分钟内的数据放入mq,加大消费者数量;还有一种是定时处理,在xxljob中多建一些任务实例,以不同的参数来调用接口处理数据。哪种好呢?
0
H
HSuperYue

对时间精度要求不高可以写到数据库定时执行,因为时间误差要求小,必须定时扫描频率高。如果对时间精度要求高,用队列是最好的,几十万数据也不算大

smallcatooo
smallcatooo
这些数据最终也会入库,请问只把这些数据的id放入队列中可以吗
返回顶部
顶部