温馨提示:文本由机器自动转译,部分词句存在误差,以视频为准
00:00
同学们,上节课呢,我们已经讲了消息手动应答的一个原理以及相关概念介绍。下面呢,我们消息手动应答的代码,对,用代码来实现一下。代码怎么实现呢?无非就是按照刚才的说法是工作线程进行应答,跟生产者其实美股没有关系,生产者只负责发消息给队列,那么工作线程负责来进行应答,因为问题就出在工作线程这里,工作线程的代码没有执行完,那么他就不应该硬打。应该等待自己的代码执行完成完之后呢,进行手动档,所以代码的更改应该在工作线程这边。那么工作线程这边怎么去写这个应答呢?所以我们来看一下。回来。咱们文档上呢,给了一段呃,如何进行应答的一个代码,我们捋一下思路。
01:03
首先第一个我们应答的时候呢,肯定是线程这一块是吧,工作线程这一块是当他接收线程。这呢,当他接收接收消息,这呢,当他消费消息时,这个位置我们原来都写的是触,表示是自动档,要求改成手动挡,也就改成force。一旦改成手动应答之后。这行代码一旦执行完。那么他就不会将。就不会进行自动应答,要求什么时候才会自动答呢?要求将消息接收进来,这呢,这行代码将消息接收进来,完了将将消息进行打印,将消息进行处理之后,如果真的全都完成了,在最后一行加一级叫什么呢?叫应答。叫做用于肯定应答。应答第一个参数呢?表示是消息的一个标记,表示是消息的,应答的是哪个消息需要应答。
02:06
第二个问你是否批量,那我们肯定不批量是吧?同学们都知道不批量,因为批量会造成后续的消息,有可能呃,没有完成就已经被应答了。而我们希望是处理一个应答一个,处理一个应答一个,这样呢,消息能保证绝对的不丢失。好,那么接了几加了几行代码,两行啊,在我们之前写的代码里面加了两行,一一行是当你接收消息的时候。改成false表示,手动应答完之后,在接收完消息之后,再来一个AC进行肯定的一个应答。好,那么我们把代码写一下。这块呢是,呃,举了一个例子,我们之前代码应该怎么写,那么接下来呢,我们打算直接新写一份新的消息,生产者之后呢,再写一份新的消费者,当然消费者我们可以写两个,哎,两个消费者来,两个消费者当中都要改成这叫手动应答方式。
03:13
对完,同时呢,我们还要进行测试。为了测试效果呢,我们在代码当中,你看要添加一个啊沉睡这个呢,是一个工具类啊,要求这个代码呢,睡它个十秒钟。完了睡了。十秒钟之后,如果。对,如果在碎的十秒当中没有出现任何问题,那么我们再进行应答,如果在碎的十秒当中出问题了,我们自然就不能进行应答,要保证消息哎不丢失。好,那我们把代码写一下。
我来说两句