“阿里云”RabbitMQ版踩坑延时限制

背景

image
一次偶然的产品需求更变引发的血案,还好代码还没有上线,不然就BabiQ了。

坑的开始

根据业务需求,在几个场景下需要使用超时处理,具体需求更变如下。

1、超过15天后对资源进行释放(更变数据状态);
2、下单超过3天后自动释放商品库存;

按照现有的技术栈来说,我们集成了xxljob、rabbitmq,对于定时任务的时效性还是不太满意,选择了rabbitmq更加准确的时间点触发机制。坑就开始了。

翻了阿里云的官方文档,写了这么两行规则
rabbitmq文档

阿里云定义的时间限制为1天,超过1天就按普通消息处理(也就是马上就消费了)

然后,这个还没有玩,不可能dev和test都试用公网的阿里云吧,本地我们部署的开源版本的。然而开源版本的时间限制还不一样的。

来看看官方源代码erlang

image

rabbitmq开源版本的定义为 49.7天

具体这块我们使用的阿里云应该使用了他自己做的而不是延时插件版本的。

结束语

常在河边走哪能不湿鞋,还是对一个工具不够熟悉才会犯这样的错误,如果使用之前花大量的时间去阅读文档视乎很费时间精力。于是大部分开发人员都是百度、google一些博客资源来CV代码导致了这种问题。
还是需要多看官方文档呀!!!

来源: 雨林博客(www.yl-blog.com)