现在项目里有定时任务定时扫描数据库中符合条件的记录,一次可能几千条,然后放循环这几千条数据放到rabbitmq中,再消费掉消费的时会调用来源第三方接口,最后将调用日志记录到日志表。请问这样做有必要吗,去掉消息队列环节直接调用第三方接口,然后数据库记录日志,对数据库影响大吗??对于数据库应该算一个连接吧??
现在项目里有定时任务定时扫描数据库中符合条件的记录,一次可能几千条,然后放循环这几千条数据放到rabbitmq中,再消费掉消费的时会调用来源第三方接口,最后将调用日志记录到日志表。请问这样做有必要吗,去掉消息队列环节直接调用第三方接口,然后数据库记录日志,对数据库影响大吗??对于数据库应该算一个连接吧??
有没必要,你可以考虑: 1. 为什么想加?成本代价是什么? 2. 不加的话,有什么问题? 有没有其它方法能解决?
从表面看, 你担心的是不用的话对数据库的影响,这点可以说基本没有影响。因为你本来就是遍历串行调用第三方。无论用不用队列都是一样的。
如果担心数据丟失,那也可以把选出来的几千条写到文本,再遍历调用,记录结果,失败重试 (举这个例子,只是想说明你的目标可能有多种方案,选你认为对的就行, 比如你搭建消息队列也要考虑持久化和可用性等,方案就复杂了,如果简单能做到那就尽量用简单的)