Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
梦境迷离
Scala Macro Tools
提交
fb937180
S
Scala Macro Tools
项目概览
梦境迷离
/
Scala Macro Tools
上一次同步 1 年多
通知
8
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
S
Scala Macro Tools
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
fb937180
编写于
3月 23, 2022
作者:
梦境迷离
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
use stm for caffeine
上级
e81841ed
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
25 addition
and
5 deletion
+25
-5
cacheable-caffeine/src/main/scala/org/bitlap/cacheable/caffeine/Implicits.scala
.../main/scala/org/bitlap/cacheable/caffeine/Implicits.scala
+5
-5
cacheable-caffeine/src/test/resources/application.conf
cacheable-caffeine/src/test/resources/application.conf
+1
-0
cacheable-caffeine/src/test/scala/org/bitlap/cacheable/caffeine/CacheableTest.scala
...t/scala/org/bitlap/cacheable/caffeine/CacheableTest.scala
+19
-0
未找到文件。
cacheable-caffeine/src/main/scala/org/bitlap/cacheable/caffeine/Implicits.scala
浏览文件 @
fb937180
...
...
@@ -41,8 +41,8 @@ object Implicits {
ZStream
.
fromEffect
(
STM
.
atomically
{
STM
.
foreach_
(
identities
)(
key
=>
ZCaffeine
.
del
(
key
))
})
*>
({
Utils
.
debugS
(
s
"Caffeine ZStream update >>> identities:[$identities]"
)
.
when
(!
ZCaffeine
.
disabledLog
)
// 使用when会导致流变成空,继而使用runHead返回None
if
(
ZCaffeine
.
disabledLog
)
ZStream
.
unit
else
Utils
.
debugS
(
s
"Caffeine ZStream update >>> identities:[$identities]"
)
}
*>
business
)
}
}
...
...
@@ -61,7 +61,7 @@ object Implicits {
}
for
{
ret
<-
ZStream
.
fromEffect
(
stmResult
)
_
<-
Utils
.
debugS
(
s
"Caffeine ZStream getIfPresent >>> identity:[$key],field:[$field],result:[$ret]"
).
when
(!
ZCaffeine
.
disabledLog
)
_
<-
if
(
ZCaffeine
.
disabledLog
)
ZStream
.
unit
else
Utils
.
debugS
(
s
"Caffeine ZStream getIfPresent >>> identity:[$key],field:[$field],result:[$ret]"
)
r
<-
ZStream
.
fromIterable
(
ret
)
}
yield
r
}
...
...
@@ -73,7 +73,7 @@ object Implicits {
STM
.
foreach_
(
identities
)(
key
=>
ZCaffeine
.
del
(
key
))
}
*>
{
business
.
tap
(
updateResult
=>
Utils
.
debug
(
s
"Caffeine ZIO update >>> identities:[$identities],updateResult:[$updateResult]"
)
.
when
(!
ZCaffeine
.
disabledLog
))
.
unless
(
ZCaffeine
.
disabledLog
))
}
}
}
...
...
@@ -90,7 +90,7 @@ object Implicits {
ret
<-
chunk
.
fold
(
ZCaffeine
.
hSet
[
T
](
key
,
field
,
syncResult
))(
c
=>
STM
.
succeed
(
c
))
}
yield
ret
}.
tap
(
ret
=>
Utils
.
debug
(
s
"Caffeine ZIO getIfPresent >>> identity:[$key],field:[$field],result:[$ret]"
)
.
when
(!
ZCaffeine
.
disabledLog
))
.
unless
(
ZCaffeine
.
disabledLog
))
}
}
}
cacheable-caffeine/src/test/resources/application.conf
浏览文件 @
fb937180
caffeine
{
maximumSize
=
100
expireAfterWriteSeconds
=
60
disabledLog
=
false
}
\ No newline at end of file
cacheable-caffeine/src/test/scala/org/bitlap/cacheable/caffeine/CacheableTest.scala
浏览文件 @
fb937180
...
...
@@ -28,6 +28,7 @@ import zio.stream.ZStream
import
zio.
{
Task
,
ZIO
}
import
org.bitlap.cacheable.core.cacheEvict
import
zio.stm.STM
import
zio.Chunk
import
scala.util.Random
import
java.util
...
...
@@ -164,4 +165,22 @@ class CacheableTest extends AnyFlatSpec with Matchers {
)
result
.
_1
shouldEqual
result
.
_2
}
"cacheable9"
should
"zio operation is ok with chunk"
in
{
val
chunk
=
Chunk
(
Random
.
nextInt
().
toString
,
Random
.
nextInt
().
toString
,
Random
.
nextInt
().
toString
)
@cacheable
(
local
=
true
)
def
readIOFunction
(
id
:
Int
,
key
:
String
)
:
ZIO
[
Any
,
Throwable
,
Chunk
[
String
]]
=
{
ZIO
.
succeed
(
chunk
)
}
println
(
chunk
)
val
result
=
runtime
.
unsafeRun
(
for
{
_
<-
STM
.
atomically
(
ZCaffeine
.
del
(
"CacheableTest-readIOFunction"
))
method
<-
readIOFunction
(
1
,
"hello"
)
cache
<-
STM
.
atomically
(
ZCaffeine
.
hGet
[
Chunk
[
String
]](
"CacheableTest-readIOFunction"
,
"1-hello"
).
map
(
_
.
getOrElse
(
Chunk
.
empty
)))
}
yield
method
->
cache
)
result
.
_1
shouldEqual
result
.
_2
}
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录