Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
梦境迷离
Zio Redis
提交
dabc405a
Z
Zio Redis
项目概览
梦境迷离
/
Zio Redis
8 个月 前同步成功
通知
4
Star
2
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
Z
Zio Redis
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
未验证
提交
dabc405a
编写于
3月 31, 2023
作者:
D
Dejan Mijić
提交者:
GitHub
3月 31, 2023
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Use Chunk.foldLeft (#798)
上级
940ce275
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
8 addition
and
13 deletion
+8
-13
modules/redis/src/main/scala/zio/redis/SingleNodeExecutor.scala
...s/redis/src/main/scala/zio/redis/SingleNodeExecutor.scala
+7
-12
modules/redis/src/main/scala/zio/redis/internal/RespValue.scala
...s/redis/src/main/scala/zio/redis/internal/RespValue.scala
+1
-1
未找到文件。
modules/redis/src/main/scala/zio/redis/SingleNodeExecutor.scala
浏览文件 @
dabc405a
...
...
@@ -46,23 +46,18 @@ final class SingleNodeExecutor private (
private
def
drainWith
(
e
:
RedisError
)
:
UIO
[
Unit
]
=
responses
.
takeAll
.
flatMap
(
ZIO
.
foreachDiscard
(
_
)(
_
.
fail
(
e
)))
private
def
send
:
IO
[
RedisError.IOError
,
Option
[
Unit
]]
=
requests
.
takeBetween
(
1
,
RequestQueueSize
).
flatMap
{
reqs
=>
val
buffer
=
ChunkBuilder
.
make
[
Byte
]()
val
it
=
reqs
.
iterator
while
(
it
.
hasNext
)
{
val
req
=
it
.
next
()
buffer
++=
RespValue
.
Array
(
req
.
command
).
asBytes
}
val
bytes
=
buffer
.
result
()
requests
.
takeBetween
(
1
,
RequestQueueSize
).
flatMap
{
requests
=>
val
bytes
=
requests
.
foldLeft
(
ChunkBuilder
.
make
[
Byte
]())((
buffer
,
req
)
=>
buffer
++=
RespValue
.
Array
(
req
.
command
).
asBytes
)
.
result
()
connection
.
write
(
bytes
)
.
mapError
(
RedisError
.
IOError
(
_
))
.
tapBoth
(
e
=>
ZIO
.
foreachDiscard
(
reqs
)(
_
.
promise
.
fail
(
e
)),
_
=>
ZIO
.
foreachDiscard
(
reqs
)(
req
=>
responses
.
offer
(
req
.
promise
))
e
=>
ZIO
.
foreachDiscard
(
req
uest
s
)(
_
.
promise
.
fail
(
e
)),
_
=>
ZIO
.
foreachDiscard
(
req
uest
s
)(
req
=>
responses
.
offer
(
req
.
promise
))
)
}
...
...
modules/redis/src/main/scala/zio/redis/internal/RespValue.scala
浏览文件 @
dabc405a
...
...
@@ -39,7 +39,7 @@ private[redis] sealed trait RespValue extends Product with Serializable { self =
Headers
.
BulkString
+:
(
encode
(
bytes
.
length
.
toString
)
++
bytes
++
CrLf
)
case
Array
(
elements
)
=>
val
data
=
elements
.
foldLeft
[
Chunk
[
Byte
]](
Chunk
.
empty
)(
_
++
_
.
asBytes
)
val
data
=
elements
.
foldLeft
(
Chunk
.
empty
[
Byte
]
)(
_
++
_
.
asBytes
)
Headers
.
Array
+:
(
encode
(
elements
.
size
.
toString
)
++
data
)
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录