首页
学习
活动
专区
圈层
工具
发布
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    响应式编程 Reactor 学习小记

    Flux 和 Mono Flux 是生产者,即我们上面提到的 Publisher,它代表的是一个包含 0-N 个元素的异步序列,Mono可以看做 Flux 的有一个特例,代表 0-1 个元素,如果不需要生产任何元素...就这张图做下说明,先来关注几个点: 从左到右的时间序列轴 1-6 为 Flux enitted(发射)的元素 上面 6 后面的竖线标识已经成功完成了 下面的 1-3 表示转换的结果 ❌ 表示出现了error...创建出来的 Flux // 序列在发布这些元素之后会自动结束。...除了间隔时间之外,还可以指定起始元素发布之前的延迟时间。 Flux.interval(Duration.ofMillis(100)).take(10); // 创建一个不包含任何消息通知的序列。...Flux.never(); // 创建一个不包含任何元素,只发布结束消息的序列。

    51011

    【Kotlin 协程】Flow 流组合 ( Flow#zip 组合多个流 | 新组合流的元素收集间隔与被组合流元素发射间隔的联系 )

    文章目录 一、Flow 流组合 1、Flow#zip 组合多个流 2、新组合流的元素收集间隔与被组合流元素发射间隔的联系 一、Flow 流组合 ---- 1、Flow#zip 组合多个流 调用 Flow...Two 2022-12-26 16:39:29.433 30002-30002/kim.hsl.coroutine I/System.out: num = 3, str = Three 2、新组合流的元素收集间隔与被组合流元素发射间隔的联系...假如两个 Flow 流的 元素发射 不同步 , 则 先发射的元素 , 需要等待对应顺序的 后发射的元素到来 ; 在下面的代码中 , numFlow 的发射元素间隔为 100ms , strFlow 发射元素间隔为...1000ms , 则 numFlow 元素收集到之后 , 需要等待 strFlow 元素收集 , 也就是 二者合并后的间隔以 慢的为准 , 合并后的流 发射间隔为 1000ms ; 代码示例 : package

    1.7K20

    访问日志不记录静态文件,访问日志切割,静态元素过期时间

    笔记内容: 11.22 访问日志不记录静态文件 11.23 访问日志切割 11.24 静态元素过期时间 笔记日期:2017.10.10 11.22 访问日志不记录静态文件 ?...因为静态的图片太多了,如果每一个请求全都要记录在访问日志里的话,就会导致访问日志一天下来可能得记录几个G甚至十几个G的内容,但是这种静态图片的请求是没必要去记录在访问日志里的,所以我们要让访问日志不记录指定类型的文件...11.24 静态元素过期时间 ? 当我们使用浏览器打开一个网站的时候,浏览器会将页面上的静态元素:图片、样式、动画等,缓存到一个目录里存放着,下次访问时就不需要再次请求服务器进行下载了。...但是这些缓存是有一个规定的过期时间的,这个时间是在服务器上定义的,到了过期时间后这些缓存的静态元素都会被清空,这时再访问那个网站的时候就得重新下载了。 这个细节可以在浏览器的控制台上观察到: ?...但是我们这个没有定义静态元素的过期时间,这个缓存就不会清空(如果你没有使用清理垃圾的软件),除非这个图片进行了更改,那么过多的缓存也会导致系统缓存垃圾太多,占用磁盘空间。

    1.8K20

    图片不变形,宽高不超出父元素的情况下旋转图片

    实现步骤 让图片在父元素中水平居中,垂直居中显示。我用的是 flex。.../* 图片的父元素 */ .img-wrap{ display: flex; justify-content: center; align-items: center; height:...我们知道图片在旋转 (2n * 90)度在父元素的宽高是一样的,((2n + 1) * 90) 度在父元素的宽高是一样的。...图片的宽和高要满足 不超出父元素 图片不能变形 在上面的条件下,图片的宽高只有有限的值可以选。...在 旋转 (2n * 90) 度的情况下 图片的宽为父元素的宽,高度自适应 图片的高为父元素的高,宽度自适应 在 旋转((2n + 1) * 90) 度的情况下 图片的宽为父元素的高,高度自适应 图片的高为父元素的宽

    2.5K30

    行内元素内外边距探究:为何span设置上下margin和padding不起效

    一直以为行内元素设置内外边距会不起效,之前也没有具体的去实验,只是在需要设置 margin 或者 padding 的时候给元素设置一个 display: inline-block; 就得了。 ?...margin 则只能设置左右边距,上下边距不起效。 但是 padding-top 去哪了?怎么看不到呢? ? 我又给外部容器设置了一个外边距,这样上内边距就显示出来了。 ?...原来 span 等行内元素是可以设置内边距 padding 的,只不过元素本身无法把父元素撑开,看上去就是设置的 padding 上下边距不起效了,而 margin 就只能设置 span 的左右边距。...所以,如果要给 span 设置边距,一般的方法就是给它设置一个 display: inline-block; ,把它变成行内块级元素就可以了。...:为何span设置上下margin和padding不起效》 https://www.w3h5.com/post/247.html

    9.4K30

    【Kotlin 协程】Flow 流异常处理 ( 收集元素异常处理 | 使用 try...catch 代码块捕获处理异常 | 发射元素时异常处理 | 使用 Flow#catch 函数捕获处理异常 )

    文章目录 一、Flow 流异常处理 二、收集元素异常处理 1、收集元素异常代码示例 2、收集元素捕获异常代码示例 三、发射元素异常处理 1、发射元素异常代码示例 2、发射元素异常捕获代码示例 一、...Flow 流异常处理 ---- 在 Flow 流 的 构建器代码 : flow , flowOf , asFlow ; 发射元素 : emit 发射元素 ; 收集元素 : collect 收集元素 ;...Flow#catch 函数 发射元素时捕获异常 处理异常 ; 二、收集元素异常处理 ---- 1、收集元素异常代码示例 异常代码示例 : 如果收集的元素 it 元素 1 21:51:03.015 System.out kim.hsl.coroutine I 发射元素 1 21:51:03.015 System.out kim.hsl.coroutine...I 捕获到了异常 抛出异常 2 <= 1 三、发射元素异常处理 ---- 1、发射元素异常代码示例 代码示例 : package kim.hsl.coroutine import android.os.Bundle

    3.2K20

    今日榜首|10年高级技术专家用7000字带你详解响应式技术框架

    以Map操作符为例,Map的作用是将发射的事件进行Map函数定义的数据转换,再将转换后的事件发射给Observer。转换过程如下图所示。 (1)通过Emitter发射了1、2、3三个数字。...(3)最后将转换后的事件发射给Observer。...Reactor的核心模块 ● Flux Flux是Reactor中数据发布者的重要抽象类。从源码中可以发现,Flux实现了Reactive Streams JVM API Publisher。...Flux定义了0~N的非阻塞序列,类比非阻塞Stream,在Reactor中充当数据发布者的角色。在上述实例中,Flux通过just方法发布数据流。...just方法是Flux常见的创建Stream的方法,此外,还可以通过create、generate、from等方法创建Flux数据流。

    2.1K20

    SpringWebFlux(下篇)

    素材来自官网 Mono 是表示包含 0 或者 1 个元素的异步序列 创建Mono有两种方法 通过Mono静态方法创建: empty():创建一个不包含任何元素,只发布结束消息的序列。...just():可以指定序列中包含的全部元素。创建出来的 Mono序列在发布这些元素之后会自动结束 justOrEmpty():从一个 Optional 对象或可能为 null 的对象中创建 Mono。...never():创建一个不包含任何消息通知的序列。...ps: Mono.create(userMonoSink -> userMonoSink.success(userDao.save(user))); Flux Flux 是表示包含 0 到 N 个元素的异步序列...至此一个简单的CRUD项目就完成了,在这里不涉及到数据库,DataUtils充当了数据库,在实际应用中个人感觉距离生产环境还有一段路要走,但是github上已经有关于异步jdbc的解决方案,等后面我研究后再分享出来吧

    94220

    5分钟理解SpringBoot响应式的核心-Reactor

    二、 Mono 与 Flux 在理解响应式Web编程之前,我们需要对Reactor 两个核心概念做一些澄清,一个是Mono,另一个是Flux。 Flux 表示的是包含 0 到 N 个元素的异步序列。...Mono 表示的是包含 0 或者 1 个元素的异步序列。该序列中同样可以包含与 Flux 相同的三种类型的消息通知。...empty():创建一个不包含任何元素,只发布结束消息的序列。...用于实现合并的还有 combineLastest函数,combinLastest 会动态的将流中新产生元素(末位)进行合并,注意是只要产生新元素都会触发合并动作并产生一个结果元素,如下面的代码: Flux.combineLatest...元素进行合流之外,而flatMap则提供了更加高级的处理: flatMap 函数会先将Flux中的元素转换为 Flux(流),然后再新产生的Flux进行合流处理, 如下: Flux.just(1, 2

    2.3K10
    领券