首页 > 其他分享 >pipeline的执行顺序

pipeline的执行顺序

时间:2024-05-27 22:22:24浏览次数:23  
标签:pipeline 顺序 read OutBoundHandler1 OutBoundHandler2 InBoundHandler1 InBoundHandle

假设pipeline里面有这样的handler顺序

OutBoundHandler1
InBoundHandler1
OutBoundHandler2
InBoundHandler2
* 当在【InBoundHandler1】里面执行【ctx.write()】时
    * 向上执行触发【OutBoundHandler1.write()】方法
    * 由于【OutBoundHandler2】在【InBoundHandler1】的下面,所以【OutBoundHandler1.write()】不会执行
* 当在【InBoundHandler1】里面执行【ctx.fireChannelRead()】时
    * 先执行【in】再执行【out】,所以【InBoundHandler2.channelRead0()】会比【OutBoundHandler1、OutBoundHandler2】的【read()】先执行
    * 向下执行,所以【InBoundHandler2.channelRead0()】会被触发。
    * 执行完【in】之后,开始执行【out】,【OutBoundHandler2】在【OutBoundHandler1】的下面,所以【OutBoundHandler2.read()】先执行
    * 最后执行【OutBoundHandler1.read()】
* 当在【InBoundHandler2】里面执行【ctx.fireChannelRead()】时
    * 由于【InBoundHandler1】在【InBoundHandler2】的前面,所以不执行
    * 执行【OutBoundHandler2.read()】
    * 再执行【OutBoundHandler1.read()】

标签:pipeline,顺序,read,OutBoundHandler1,OutBoundHandler2,InBoundHandler1,InBoundHandle
From: https://www.cnblogs.com/chenhz2284/p/18216692

相关文章

  • 【Azure Stream Analystics】流分析服务执行遇见警告错误消息,导致上游数据堆积,下游无
    问题描述AzureStreamAnalystics服务运行状态正常,测试输出也正常。但是下游没有任何数据产生。只是在概述页面中提示:Message:Encounterederrortryingtodiscovernewreferencedatasnapshot.Error:ThejobhasencounterederrorfromReferenceDatastorage.Error......
  • 类中代码执行的顺序
    1、先执行静态代码块点击查看代码publicclassClassTest{static{System.out.println("静态代码执行了");}publicstaticvoidmain(String[]args){System.out.println("main方法执行了");}}![](https://img2024.cnblogs.com/b......
  • git clone 远程代码执行漏洞(CVE-2024-32002) 升级
    接到提醒说git有个漏洞,Gitclone远程代码执行漏洞(CVE-2024-32002)看了看,说是git的Symlinks模块存在高危漏洞,攻击者可以利用该漏洞执行任意代码,导致服务器失陷。以下这些版本都有影响0<git<2.39.42.40.0≤git<2.40.22.41.0≤git<2.41.12.42.0≤git<2.42.......
  • pwn杂项之linux命令执行
    通常pwn题目,时常会考到对Linux命令的一些使用,比如当cat被禁用的时候,可以使用tac,或者别的命令代替......
  • 队列——顺序存储
    核心思路:1、使用顺序存储的方式定义队列时,使用数组存储队列元素,然后声明两个int类型的指针——rear和front,分别指向队尾元素的下一个位置和队头元素的位置。2、初始化队列时,队列的首尾指针都指向0。3、当队列为空时,队尾和队头指针指向同一个位置(不一定等于0)。4、队满条......
  • 动态执行JS-把字符串当做代码去执行
    使用eval将字符串当做代码来执行functionzhiXing(strCode){eval(strCode)}zhiXing("console.log('hello')")在控制台会输出:helloeval的简单介绍1,eval是同步代码2,eval()执行代码时,读取变量是当前作用域;他会先去找当前作用域中有没有这个值;如果有就获取,如果......
  • java顺序结构,循环结构,选择结构,增强for循环,switch穿透现象,值匹配
    顺序结构inta=10;intb=20;intc=a+b;System.out.println(c);//按顺序执行循环结构一、For循环格式for(初始化语句;循环条件;迭代语句){循环语句体;}for(inti=0;i<5;i++){System.out.println("我爱你");}int[]is={1,2,3};for(inti=0;i<is.l......
  • 测试进程A是否可以执行关联的响应接口
    设计两个程序,要求进程A中自定义信号SIGUSR1的响应接口,要求进程B每隔一段时间向进程A就发送SIGUSR1信号,测试进程A是否可以执行关联的响应接口。/*******************************************************************************************************@filename: :pro......
  • 命令执行漏洞概述
    一、基本定义:命令执行漏洞是指攻击者可以随意执行系统命令,分为远程命令执行(远程代码执行)和系统命令执行两类。二、原理程序应用有时需要调用一些执行系统命令的函数,如PHP中的system、exec、shell_exec、passthru、popen、proc_popen等,当用户能控制这些函数中的参数时,就......
  • 详细分析crontab定时执行任务(附Demo | 定时清空Tomcat的实战)
    目录前言1.基本知识2.Demo3.实战3.1错误版本3.2正确版本前言由于用户量大,且导出的日志以及缓存特别多,急需定期删除文件1.基本知识crontab是一个用于定时执行任务的命令行工具,通常在Unix和类Unix系统中可用,表示一个包含需要定时执行的任务列表的表格......