00:00
我们上节课呢,已经做了一个工具类,专门是连接工厂创建信道的一个工具类。接下来我们就开始要写我们的工作线程的代码。也就是消费者代码。我们先写消费者代码,写了两个消费者代码之后,完我们再写生产者的代码。把这个工具类呢,我们先关掉。打开另外一个在创建一个新的类。这次呢,用的是to表示第二次。写生产者和消费者。完之后呢,先写一个消费者。消费者的名字呢,我们本次叫。WORKER01。主要的目的就表示这是一个工作线程,呃,一号线程。所以呢,我们OK。完了这块呢。打个注释。
01:01
表示啊,这是啊,这是这是一个工作线程,相当于。之前。讲的什么呢,消费者。啊,是一个是一个东西啊。完了,那我们进来也是。通过这张图可以看到,我们工作线程最终接收的是队列名字叫hello的这么一个消息。所以我们代码呢,一如既往的像原来一样写,首先要写一个队列的。名称。名称呢?依然是我们原来的队列名称啊,字符串类型困下划线,Name等于。好。完将。队列名称进行大写转换完之后呢,再写一个接收消息。用main函数接收。完了,我们本次呢,就不用再上来就创建什么工厂了,因为我们由于提取了工具类。
02:06
已经提取了这个工具类,里面有创建工厂。进行链接产生信道,代码已经写好,所以你只需要将此工具类拿过来。调取。里面的新道即可。就快速的拿到了新脑。把异常。抛出去。拿到新套之后呢,我们的目的就是要进行直接进行消息的发送。消息的接收啊。对,我们现在目前呢,打算就是写哪边的程序的,写这边啊,所以我们可以看一下这边的程序,哎,是打算先写这里。先写这里啊。先写这里的话,那我们可以把图放在旁边啊,看到我们现在准备写一个工作线程。他目的是接收消息来写接收消息。
03:03
接收消息呢,用的是信道啊。信道呢?接收消息是basic基本的consumer进行消费。之前我们都已经写过一次了啊,关于这四个参数,第一个是队列名称,第二个是是否自动应答,我们当时都选的是自动应答,后来呢,这个是接收消息,这个是一旦出现了一些取消消息的情况,进行回调应答。哎,这些都已经用过一次了,所以我们本次直接使用不再进行说明了。如果同学忘记了,可以参考咱们之前的代码,例如第一篇当中的。呃,Consumer啊,Consumer当中,你看这一段的注释,哎,已经给同学们放在这里了,我们可以再复制一遍。完了呢,放到我们这个位置是吧,可以粘贴一下,这样呢就做了一些说明。
04:01
说明之后呢,紧接着第一个名字是消息的队列名称,第二个名答就是表示自动应答是吧,自动应答。True。第三个呢,就是接收消息,当时我们也说了,这是一一个接口,所以我们需要写拉姆达斯表达式进行消息的接收。那么来我们当时写的时候是因为我们查看了一下源代码。可以清晰的看到它与它是两大。接口,而且是函数式接口。完里面呢,可以用拉布达斯表达式是吧,拉布达斯表达式进行书写,所以我们就再写一遍。名字呢,依然一如既往的是吧,抄袭这个名字就是表示我们要创建这个接口。来。接收消息的接口完了呢,函数式接口的拉姆达斯,你是可以直接复制这个括号的。
05:00
复制完之后呢,把这个类型你是可以去掉的。对完之后呢,再写一个箭头,再写一个大括号,这就写完了。这个就专门进行消息的啊接收啊,里面这个就是消息对象。那么我们之前接收是这么接收的,直接是打印了一下,完了你了一个字符串类型,来了一个message消息,获取消息体。从而打印消息内容。完,我们前方可以加一个这个字符串表示呢,接收的消息有个前缀。哎,表示接收。道德。接受道德。消息冒号,然后面呢,就是消息的内容。这样我们这样呢,我们就完成了消息的接收,将这个接口直接写在第三个参数上。第四个参数是取消接口,那也就意味着一如既往的写,你看像刚才一样复制这个接口。
06:05
来到这里。哎,这是一旦取消,呃,消息接收被取消时。会执行,嗯,下面的内容是吧,执行下面的内容。完之后再往下。后面new的时候直接进入到这个接口的里面,函数式接口。里面只有一个参数,所以你只需要复制这一个参数,完了类型就不要了。完之后箭头。落地大框。完了这块少个分号,完这里面就可以打印一样,打印一段内容是吧?打印什么内容呢?就是消息被取消掉。的回调逻辑是吧,回调内容,所以这些就不要了。直接在这里面写。对,叫。要这么写。
07:01
消息。消息被消费者取消。消费接口回调逻辑对完了呢,是哪个消息,是哪一个消息,这里面牵扯到。你要把。这个接口给他。粘出来是吧,就把它复制出来,往这一粘。少一个括号是吧。把这个括号呢。诶,咱们。多了一个括号是多了一个括号,好完之后呢,再把它放到第四个参数。这样呢,我们就写完了我们的消息的消费者,也就是工作。工作现场。
我来说两句